summaryrefslogtreecommitdiff
path: root/net/aria2
AgeCommit message (Collapse)AuthorFilesLines
2014-02-19GCC_REQD should be appended to, not set.jperkin1-2/+2
Fixes issues where a newer GCC has been chosen by the user but the GCC_REQD was forcing an older (and broken) one to be pulled regardless.
2014-02-12Recursive PKGREVISION bump for OpenSSL API version bump.tron1-1/+2
2014-01-10Remove obsolete patchryoon1-27/+0
2014-01-08Update to 1.18.2ryoon5-33/+51
* This package requires gcc 4.7 later from pkgsrc Changelog: aria2 1.18.2 ============ Release Note ------------ This release fixes the wrong handling of return value of fork(), which leads to high CPU usage. The progress readout has some color output. Mingw32 build now receives colorized output. Mingw32 build now can read unicode command-line arguments. The build script of OSX was rewritten. The --bt-max-open-files now limits the number of opened file globally for multi-file downloads instead of per download basis. Changes ------- * Remove the outdated, broken build_osx_release.sh * Initial revision of the a new OSX release Makefile * Allow using libgmp with AppleTLS/WinTLS * Fix crash when metaurl contains unsupported URI or text * Fix bad fork() return value handling * Use some colors in progress reports (where available) * Implement basic color support for the Windows console Only \033[*m (SGR) is supported, with a 16+16 color terminal. * AppleTLS: Implement PKCS12 loading. * Limit number of opened file globally with --bt-max-open-files option This change changes the behavior of --bt-max-open-files. Previously, it specifies the maximum number of opened files for each multi-file download. Since it is more useful to limit the number globally, the option now specifies the global limit. This change suggests that aria2.changeOption() method now ignores --bt-max-open-files and aria2.changeGlobalOption now reads it and dynamically change the limit. * Don't fail multiple concurrent dl same file if auto-file-renaming is enabled * mingw32: Use CommandLineToArgvW() and GetCommandLineW() to read cmd-line args This change enables aria2 to read unicode characters in command-line. aria2 1.18.1 ============ Release Note ------------ This release fixes the percent-encoding bug which affects file name encodings. It adds PKCS12 support in certificate import. It also adds experimental internal implementation of message digest functions, ARC4 cipher and bignum. It means that no external libraries are required to build BitTorrent support, but this feature is still marked as experimental. This release also fixes the android build with NDK r9. Changes ------- * LibsslTLSContext: Remove weak cipher suite * AppleTLS: Enable --certificate * util::percentEncodeMini: Fix regression bug removed unsignedness srange-based for around std::string is convenient but several functions depend unsigned char for correctness and readability. * Log exception; throw error if loading private key and/or certificate failed * Provide internal ARC4 implementation Now you can build bittorrent support without without external libraries, meaning you can skip libnettle, libgmp, libgcrypt, GnuTLS and OpenSSL on OSX (for now). * Internal implementation of DHKeyExchange Reusing a bignum (well, unsigned very-long) implementation I had lying around for years and just cleaned up a bit and brought to C++11 land. It might not be the most performant implementation, but it shoud be fast enough for our purposes and will go a long way of removing gcrypt, nettle, gmp, openssl dependencies when using AppleTLS and WinTLS (upcoming). * PKCS12 support in --certificate and --rpc-certificate options. * Add --disable-ssl configure option * Add internal md5 and sha1 message digests * Fix AppleMessageDigestImpl use with large data * Set old cookie's creation-time to new cookie on replacement As described in http://tools.ietf.org/html/rfc6265#section-5.3 * Fix link error with Android NDK r9 Since Android ndk r9, __set_errno is deprecated. It is now defined as inline function in errno.h. The syscall assembly calls __set_errno, but since libc.so does not export it, the link fails. To workaround this, replace all occurrences of __set_errno with a2_set_errno and define it as normal C function. aria2 1.18.0 ============ Release Note ------------ 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 ------- * Use AM subdir-objects Doing so in AM_INIT_AUTOMAKE seems to be the most compatible way of doing so. Closes GH-120 * AM_SILENT_RULES([yes]) with backwards-compatiblity 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 * Fix automake-1.14 am_aux_dir 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) Hence call AC_USE_SYSTEM_EXTENSIONS only after AM_INIT_AUTOMAKE. This, of course, caused a lot of related macro shuffling. Tested against automake-1.10 (OSX Lion/XCode version) and automake-1.14 (homebrew version) * Require external gettext for --enable-nls And stop using the internal flavor with ./intl * Make AX_CXX_COMPILE_STDCXX_11 test for -stdlib=libc++ via std::shared_ptr 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. * Make the configure check for C++11 compiler mandatory Remove stray "dnl", so that mandatory actually works with (my) autoreconf. * Always build doc/manual-src Should sphinx-build be not available AND the man file not be prsent, then just "touch" it into existence (and warn about that) * Win: Use SetConsoleCtrlHandler for SIGINT/SIGTERM * Implement a simple resource lock (threading) In this initial implementation Locks are no-ops on platforms other than Windows. * Check for sphinx-build during configure * Add --with-disk-cache configure option Enables packagers more fine grained control over the default value without having to mess with config files. See GH-115 * Change defaults: Enable 16M disk cache by default. * Always save control file if --force-save is given * Set log level DEBUG for unittests * Check that C++ compiler supports override keyword If the compiler supports override, define CXX11_OVERRIDE as override, otherwise define it as empty. Use CXX11_OVERRIDE instead of override. * AppleTLS: Fix MessageDigestImpl * AppleTLS: Fix session CFRelease stuff * Use AX_CXX_COMPILE_STDCXX_11 macro to detect C++0x/C++11 support in compiler * Require -std=c++11 and use std::shared_ptr instead of SharedHandle * Join URI on redirect * Send HAVE message to the peer which the piece is downloaded from 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. * Improvements to --follow-torrent=false documentation. Patch from gt * SessionSerializer: Truly unique URIs 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. Also avoid copying the uri std::strings around during dupe checking, usually resulting in better performance regarding CPU and space. * Make getOption RPC method return option for stopped downloads * SessionSerializer: Save spent URIs as well as remaining ones
2013-10-19Revbump after updating textproc/icuadam1-2/+2
2013-07-14Make NLS optional and move it to options.mk, but enabled by default. Moverodent3-49/+61
gettext-lib dependency to that option. Buildlink libiconv and pthread. USE_TOOLS+=bison msgfmt msgmerge xgettext. USE_LIBTOOL=yes. Bump PKGREVISION.
2013-06-09Update to 1.17.1ryoon6-13/+39
Changelog: aria2 1.17.1 ============ 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. Changes ------- * Add code to detect rst2html.py or rst2html * AppleTLS: Properly support Snow Leopard (10.6) Tested on 10.6.8 + XCode 4.2 (llvm-gcc-4.2, clang) Contributed by Nils Maier * Enable multicast loopback in BitTorrent local peer discovery * Enable TLS1.1 with gnutls build * Support off64_t for Android build 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. * Check zlib availability usin AC_CHECK_LIB This is workaround for zlib 1.2.3 which does not come with pkg-config file. * Treat response is completed if EOF is received before streamFilter completes This fixes the error with web server which has buggy chunked encoding. * uitos: Fix off-by-one error bug * Add configure support for linking tcmalloc_minimal and/or jemalloc 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 ;) 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. 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/ jemalloc is the default allocator at least on FreeBSD and NetBSD and used in Firefox. http://www.canonware.com/jemalloc/index.html Contributed by Nils Maier * Close GZipFiles in the d'tor Contributed by Nils Maier * Add libaria2, C++ library interface to aria2 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. The APIs in this release is considered experimental. * Add missing check for sigaction * Fix cached data is not flushed when downloaded data is less than 16KiB * LibUV: Implement LibuvEventPoll 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() ;) Contributed by Nils Maier 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: Implement AppleTLS and Apple Message Digest Contributed by Nils Maier * Use info level log for system trusted ca imports failure 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. * Don't add Windows native DLLs for Cygwin build * Remove deprecated options: --enable-direct-io and --metalink-servers * Deprecate --enable-async-dns6 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. * Fix uninitialized UDPTrackerClient::numWatchers_ * Implement simple Happy Eyeballs for HTTP/FTP downloads * Parallel A and AAAA record lookups with c-ares 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.
2013-05-09Massive revbump after updating graphics/ilmbase, graphics/openexr, textproc/icu.adam1-1/+2
2013-05-04size_type is a trait of the container, not the iterator.joerg2-1/+15
2013-03-19Update to 1.16.4ryoon3-7/+8
Changelog: aria2 1.16.4 ============ Release Note ------------ This release fixes the bug that active downloads are not saved with --save-session-interval and the bug that aria2 hangs when size of download result exceeds its maximum. BitTorrent UDP tracker support was added. If the filename specified using --save-session ends with ".gz", aria2 stores the session file in gzipped form. The -i option can handle this gzipped file as well as plain text file. 1.15.2 based Portuguese translated manual was added. Changes ------- * Make configure argument meaning more consistent and obvious. Most other software uses --disable/--without for features it does build or at least check by default. Change aria2 configure options so that: * --enable-*: do not build by default, unless --enable specified * --disable-*: check and build by default, unless --disable specified * --with-*: do not use by default, unless --with specified * --without-*: check and use by default, unless without specified Contributed by Nils Maier * Allow for out-of-tree Sphinx builds Contributed by Nils Maier * Bring back datetime in console log * Run checksum check if -V and -c are used and file is completed With -c option, aria2 can continue download after the existing file position. If it is not completed, then after completion aria2 runs checksum checking if available. But if existing file has already been completed, then CreateRequestCommand exits without issuing checksum checking. And aria2 treats it download error because it needs checksum verification but it has not been done. This change fixes this by properly checking download state and issue checksum checking before CreateRequestCommand. * Support for gzipped -i and --save-session Saved sessions may very large, as in hundreds and even thousands of megabyte when dealing with large queues. Add support to save and reload sessions to gzipped files, when libz is available. The session serializer will output gzipped contents when the file ends with .gz, while the input file reader (UriListParser) will accept whatever is thrown at it. Document -i/--save-session gzip behaviour Contributed by Nils Maier * Do not use a virtual varargs function This stuff breaks in some compiler (configurations) Contributed by Nils Maier * Check for sys/signal.h and/or signal.h mingw-w64 does not actually have sys/signal.h, while OSX currently has a broken signal.h Better check the presence of both and use sys/signal.h if present, else signal.h Contributed by Nils Maier * Hygiene: Fix some clang warnings, mostly unused private members. Contributed by Nils Maier * Fix bustage on OSX with ./configure CC=cc CXX=c++ (clang) Contributed by Nils Maier * Do not reference RequestGroups longer than necessary There is an initial vector of SharedHandle<RequestGroup> to seed the DownloadEngine. This vector was however kept alive via main.cc -> MultiUrlRequestInfo up until the program exits, hence effetively leaking all initial RequestGroups and associated object instances. Hence, as a matter of dirty-workaround, drop the contents of that initial vector as soon as it is not required any longer. Contributed by Nils Maier * Detect console with on Windows Contributed by Nils Maier * Fix infinite loop when size of downloadResults_ exceeds maxDownloadResult_ * Support BitTorrent UDP tracker It shares UDP listening port with IPv4 DHT. At the moment, in order to enable UDP tracker support, enable IPv4 DHT. * Show correct end byte in error message when HTTP response range is not ok Previously, unless HTTP pipelining is enabled, end byte in that message is always 0. With this change, it shows correct end byte sent to the HTTP server. * Add Portuguese manual This translation is based on aria2 version 1.15.2 manual. Contributed by Gilberto dos Santos Alves * Fix bug that active downloads are not saved with --save-session-interval
2013-02-24Update to 1.16.3ryoon2-7/+6
Changelog: aria2 1.16.3 ============ Release Note ------------ This release fixes the bug which causes random crash. It also fixes socket option setting failure on Windows platform. Changes ------- * Fix failure to set TCP_NODELAY on Windows On Windows setting TCP_NODELAY after non-blocking connect fails at least on Windows 7. * Fix invalid iterator handling when deleting RequestGroup aria2 1.16.2 ============ Release Note ------------ This release fixes the bug which causes long running BitTorrent download to stall. The several new options have been added. Changes ------- * Check SSL_OP_NO_COMPRESSION is available before using it * Fix bug returnPeer is not called if sequence_ == INITIATOR_SEND_KEY In InitiatorMSEHandshakeCommand, when aborting connection, we must return peer to the PeerStorage. But it is not done if sequence_ is INITIATOR_SEND_KEY. This causes stale Peer objects whose usedBy() returns true eventually occupies peer list and aria2 cannot make any connections. * Accept k and m as well as K and M in util::getRealSize() * mingw32: Make NTFS sparse file on --file-allocation=trunc * Added --save-session-interval option --save-session-interval option saves error/unfinished downloads to a file specified by --save-session option every SEC seconds. If 0 is given, file will be saved only when aria2 exits. * Use request URI as referer if --referer="*" is given * Log warn if unknown option is found in config file or -i file * Added --console-log-level option --console-log-level option sets log level to output to console.
2013-02-06PKGREVISION bumps for the security/openssl 1.0.1d update.jperkin1-2/+2
2013-01-26Revbump after graphics/jpeg and textproc/icuadam1-1/+2
2013-01-02Update to 16.0.1ryoon2-6/+6
Changelog: aria2 1.16.1 ============ Release Note ------------ This release adds the ability to persist GID across sessions. The GID will be saved with --save-session. There are several restrictions how GID is persisted. See the manual for details. For this change, now GID is 64 bits binary data and represented by 16 characters hex string in RPC query. The disk cache feature was added, which may reduce disk activity. The console readout was redesigned. The warning displayed when --file-allocation=falloc is used on MinGW32 build was removed as a bug. Changes ------- * mingw32: Re-open files with read-only mode enabled on seeding On Mingw32 build, if aria2 opens file with GENERIC_WRITE access right, some programs cannot open the file aria2 is seeding. To avoid this situation, re-open files with read-only enabled when seeding is about to begin. * Save gid option with --save-session option * Added --gid option This option sets GID manually. aria2 identifies each download by the ID called GID. The GID must be hex string of 16 characters, thus [0-9a-zA-Z] are allowed and leading zeros must not be stripped. The GID all 0 is reserved and must not be used. The GID must be unique, otherwise error is reported and the download is not added. This option is useful when restoring the sessions saved using --save-session option. If this option is not used, new GID is generated by aria2. * Use 64 bits random bytes as GID This change replaces the current 64 bit sequential GID with 64 bits random bytes GID in an attempt to support persistent GID. Internally, the GID is stored as uint64_t. For human representation and RPC interface, GID is represented as 16 bytes hex string. For console readout, 16 bytes are too long, so it is abbreviated to first 6 bytes. When querying GID in RPC calls, user can speicfy the prefix of GID as long as the prefix is shared by more than 1 GID entries. * Fixed BitfieldMan::getOffsetCompletedLength overflow on 32-bit systems * mingw32: Use HANDLE only for MinGW32 build * Changed console readout, making it more compact "SIZE:" is removed because it is obvious. SEEDING, SEED, SPD and UP are now replaced with SEED, SD, DL and UL respectively. * Compact readout when more than 1 simultaneous downloads are going on If more than 1 simultaneous downloads are going on, use more compact format in readout. Currently, at most 5 download stats are displayed. util::abbrevSize() is rewritten to support "Gi" unit and provides more compact abbreviation. * Console color output Log level and download result string is now colored. * Logger: Simplified console output and change level format in log The date and time are now removed from console output. The log level is now formatted as "[LEVEL]". * Start to find faster host before the number of missing segments becomes 1 The old implementation starts to find faster host when the number of missing segment becomes 1. Because of --min-split-size option, before the number of missing segment becomes 1, the number of connection becomes 1 and it can be slow. In this case, we have to wait until the last segment is reached. The new implementation starts to find faster host when the remaining length is less than --min-split-size * 2, to mitigate the problem stated above. * Removed warning when --file-allocation=falloc is used in MinGW32 build The warning was just a mistake. SetFilePointerEx + SetEndOfFile actually allocate disk space. * Write data in 4K aligned offset in write with disk cache enabled This greatly reduces disk activity especially on Win + NTFS. Not so much difference on Linux. * mingw32: Removed FSCTL_SET_SPARSE set * Added --disk-cache option This option enables disk cache. If SIZE is 0, the disk cache is disabled. This feature caches the downloaded data in memory, which grows to at most SIZE bytes. The cache storage is created for aria2 instance and shared by all downloads. The one advantage of the disk cache is reduce the disk seek time because the data is written in larger unit and it is reordered by the offset of the file. If the underlying file is heavily fragmented it is not the case.
2012-12-09Update to 1.16.0ryoon3-7/+17
changelog: aria2 1.16.0 ============ Release Note ------------ This release adds SSL/TLS encryption support in RPC transport. The new RPC method aria2.appendUri is added, which is a wrapper to aria2.changeUri. The Content-Disposition parser is now RFC 6266 conformant. The resource leak in XmlParser, JSON and Bencode parser was fixed. The uploaded data size calculation bug was fixed. For MinGW32 build, files are now opened with read/write shared mode. Changes ------- * mingw32: Open file using _wsopen and added --enable-mmap support I tried CreateFile but the subsequent ReadFile fails with Access Denied if sparse file is read on NTFS. I mostly reverted previous changes and use _wsopen with read/write share enabled instead of CreateFile. This change also includes --enable-mmap support for MinGW32 build. Memory mapped file may be useful for 64-bits OS and lots of RAM. Currently, FlushViewOfFile is not called during the download, so it is slightly vulnerable against sudden power loss. I found lots of read when resuming download due to page fault. So for now it is useful for the initial download. I recommend not to use --file-allocation=prealloc with --enable-mmap for MinGW32, because it triggers page faults even in the initial download. Anyway, the option is experimental. * Removed PO files and generated aria2.pot from repository Currently, message translation is done at launchpad. All PO files can be exported from there. The merge process from launchpad is done when new release. First download export file from launchpad And use import-po script to import PO files into po directory. * Set F_GLOBAL_NOCACHE for Mac OS X * Enabled TCP_NODELAY * Don't use AC_FUNC_MMAP Don't use AC_FUNC_MMAP becaue it fails on some platforms (e.g., OpenWRT) which have mmap and it works in the way we use in aria2. Instead use mmap in AC_CHECK_FUNCS list. * Added --force-save option. --force-save option saves download with --save-session option even if the download is completed or removed. This may be useful to save BitTorrent seeding which is recognized as completed state. The default value is false. * Get the correct uploaded data size Subtract msgHdrLen_ from writtenLength to get the uploaded data size. Without this correction, the seeder assumes it has uploaded more data than it actually has. * Made --http-no-cache false by default * Fixed memory leak in AsyncNameResolver * Fixed resource leak in XmlParser and GenericParser * Reset iostream format state * gnutls: Added more status checking when verifying peer * Content-Disposition parser conforming to RFC 6266. RFC 2231 Continuation is not supported. * Reworked download/upload statistics calculation The old implementation calculates download/upload statistics for a RequestGroup by summing up all PeerStat objects. For global statistics, those are summed together. This clearly incurs runtime penalty and we introduced some kind of caching which updates statistics every 250ms but it did not work right. This change removes all these aggregation code, and instead makes RequestGroup and RequestGroupMan objects hold NetStat object and download/upload bytes are directly calculated by thier own NetStat. This is far more simplar than the old way and less runtime penalty and brings more accuracy. * Added --rpc-save-upload-metadata option If true is given, which is default, save the uploaded torrent or metalink metadata in the directory specified by --dir option. The filename consists of SHA1-hash hex string of metadata plus extension. For torrent, the extension is '.torrent'. For metalink, it is '.meta4'. If false is given to this option, the downloads added by aria2.addTorrent or aria2.addMetalink will not be saved by --save-session option. * Perform SSL/TLS handshake after checking whether connection is established * Fixed bug that --enable-mmap won't work if MultiDiskAdaptor is used * RPC over SSL/TLS transport To enable RPC over SSL/TLS, specify server certificate and private key using --rpc-certificate and --rpc-private-key options and enable --rpc-secure option. After the encryption is enabled, use https and wss scheme to access RPC server. * aria2rpc: Added appendUri command This command calls aria2.changeUri(GID, fileIndex, [], [URI,...]) internally. * Don't send Proxy-Connection header field * Don't set SNI hostname if it does not include "." for GNUTLS * Disable SSL/TLS compression with OpenSSL * Pause download even if download is completed This allows to pause and unpause BitTorrent seed. * Use execlp() instead of execl()
2012-10-23Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days.asau1-3/+1
2012-10-01Update to 1.15.2ryoon2-6/+6
Changelog: aria2 1.15.2 ============ Release Note ------------ This release fixes several critical bugs. It also adds new features such as TLS SNI and CORS support. The --file--allocation option now take another value trunc. The new option --enalbe-mmap was added. aria2 now uses system-wide SSL/TLS certificates by default, which eliminates the requirement to specify --ca-certificate option. Changes ------- * Catch exception from Socket::getPeerInfo() when pooling connection. Socket::getPeerInfo() may fail if its TCP connection has already disconnected. In this case, we log this error. The success or failure of pooling connection should not affect the later execution of the program. This bug may cause segmentation fault if Socket::getPeerInfo() throws exception during pooling connection after successful tracker request. * Fixed assertion error if --retry-wait is used. In CreateRequestCommand, if Request object returned from getRequest() is still sleeping, CreateRequestCommand pools it back but still holds its reference. This makes assertion error in UnknownLengthPieceStroage::hasMissingUnusedPiece() from AbstractCommand::execute(). * Added new file allocation method called 'trunc'. --file-allocation option can now take new value 'trunc'. 'trunc' uses ftruncate() system call or platform-specific counterpart to truncate a file to a specified length. * Use int64_t instead of off_t. Using off_t, at least, in DiskAdaptor layer is problematic because torrent can contain under 2GiB files but total sum of those files may exceed 2GiB limit, which makes off_t overflow in 32 bit system without large file support. So we use int64_t in API. We'll check the file length before download so that it does not exceed max off_t. * Added TLS SNI support. * Rewritten timegm replacement function. The algorithm is based on Python 2.7 calendar.timegm. * Use system-wide certificates for SSL. Use system-wide certificates for SSL. For GnuTLS it requires the latest version, 3.0.20. OpenSSL had it for longer. This means that if SSL library is properly configured to locate system-wide certificates store, the user don't have to use --ca-certificate option. Also packagers don't have to use --with-ca-bundle configure option. Patch from Cristian Morales Vega * Fixed base64::decode() return "" if input ends with garbage and no padding. * Changed default Peer ID prefix. The new Peer ID prefix is "A2-$MAJOR-$MINOR-$MICRO-", where $MAJOR, $MINOR and $MICRO are the major version, the minor version and the micro version respectively. For instance, 1.15.2 release of aria2 will use "A2-1-15-2-". * Don't percent-decode filename value in Content-Disposition. We only percent-decode filename* value in Content-Disposition because the encoding is fully specified. But since filename value is not, so we just accept it as is. * Don't sum in-flight piece which does not intersect filtered ranges. When calculating completed length, don't sum the completed length of piece which does not intersect filtered ranges. * Fixed segmentation fault when logger failed to open log file. * Added ARIA2_STATIC precious variable to configure option. To build statically linked aria2 binary, give ARIA2_STATIC=yes to configure, like this: $ ./configure ARIA2_STATIC=yes * Use PRId64 for int64_t format specifier * Handle the case when MINGW32 vsnprintf returns -1. MINGW32 vsnprintf returns -1 if output is truncated. Increased buffer for vsnprintf in WinConsoleFile and fmt. * Added --enable-mmap option. If this option is used, map files into memory using mmap(2). This option is experimental. * Added CORS preflight request support in RPC interface. This change is based on the patch from binux.
2012-07-03Update to 0.15.1ryoon3-13/+8
Changelog: aria2 1.15.1 ============ Release Note ------------ This release fixes the bug that prevents --bt-lpd-interface from working. If some options sent by RPC request are not acceptable for the download type, they are now simply ignored instead of rejecting RPC request entirely. The aria2 RPC server now returns 4XX error code if the request is not valid in the HTTP level. To improve packaging, --with-bashcompletiondir configure option was added. This option overrides where the aria2c bash_completion file is going to be installed. All manual pages are now generated by Sphinx. Changes ------- * Return appropriate HTTP status code on RPC failure. In this change, we return 404 if the request path is neither /json-rpc nor /rpc. If XML feature is not enabled and /rpc is requested, return 404. If XML parser failed, return 400. JSON parser failure has been handled well in the existing code. * Ignore unacceptable options in RPC request instead of throwing error. This change allows RPC client to send same options for the different type of downloads. * Handle sockaddr_in.sin_len and sockaddr_in6.sin6_len. Check sockaddr_in.sin_len and sockaddr_in6.sin6_len are available and assign values to them properly. This change fixes unit test error and most error related to getnameinfo() on netbsd. * Removed dependency on inet_aton. Implemented inetPton as a replacement of inet_aton. inetPton is implemented using net::getBinAddr. This change fixes bug#3525424. * Added --with-bashcompletiondir configure option. By default, bash_completion file named aria2c is installed to the directory $prefix/share/doc/aria2/bash_completion. To change the install directory of the file, use --with-bashcompletiondir option. * Converted README.asciidoc into README.rst * Use Sphinx for aria2 manual page documentation. The source files for manual pages are placed under doc/manual-src. The manual pages are generated under doc/manual-src/$LANG/_build. The HTML version manual page was dropped from the distribution archive. * Fixed the bug which prevents --bt-lpd-interface from working. Fixes bug#3520125
2012-04-27Recursive bump from icu shlib major bumped to 49.obache1-1/+2
2012-04-25update to 1.15.0drochner3-7/+8
changes: -added json-rpc over websocket -TLS hostname check rewritten -misc fixes and improvements
2012-01-14Update to 1.14.1ryoon2-6/+6
Chngelog: Changes ------- * Supported network-path reference in HTTP redirect. * Updated bash_completion. * aria2 now doesn't assume download has completed just because file size matched. The only exception is zero-length file. If server tells that file is zero-length and --checksum option is given, aria2 now correctly checks its checksum. There is one known issue: If downloaded file is zero-length file and .aria2 file exists, it will not be deleted on successful verification, because .aria2 file is not loaded. * Fixed the bug that --checksum is not working. SFBUG#3466888 * Fixed compile error without libnettle, libgcrypt and openssl. SFBUG#3466463 * Fixed the bug that log file is not created if there is warning before log file is opened.
2012-01-08Update to 1.14.0.ryoon2-6/+6
Changelog: * Update translations. * Improve IPv6 support. * Many bugs are fixed.
2011-10-20Update to 1.13.0ryoon2-6/+6
Changelog: aria2 1.13.0 ============ Release Note ------------ This release fixed libgcrypt version check error. Several command line options were added. For details of each new option, read changes below. aria2 now returns error response if RPC request parameter has wrong type. For MinGW32 build, Unicode filenames support was added. From this release, aria2 uses libnettle and libgmp by default instead of libgcrypt. If you want to use libgcrypt, use configure options --without-libnettle --with-libgcrypt. Changes ------- * Check libgcrypt version is greater or equal to required version. This will fixes Debian bug#642989. * Added --piece-length option. This option sets a piece length for HTTP/FTP downloads. This is the boundary when aria2 splits a file. All splits occur at multiple of this length. This option will be ignored in BitTorrent downloads. It will be also ignored if Metalink file contains piece hashes. * Throw exception if parameter has wrong type in RPC method. Formally, depending on the method implementation, this kind of error is just ignored and parameter is skipped. Now aria2 responds error for these cases. The required parameter checking is also reworked along with this change. * Cleanup log message for binding server socket. * Recognize tab as white space before option in -i list. * Added geom parameter to --stream-piece-selector option. If 'geom' is given, at the beginning aria2 selects piece which has minimum index like 'inorder', but it exponentially increasingly keeps space from previously selected piece. This will reduce the number of establishing connection and at the same time it will download the beginning part of the file first. This will be useful to view movie while downloading it. * Added completedLength response key in aria2.getFiles RPC method * Added #checksum help tag. * Added --checksum option. Added --checksum=TYPE=DIGEST option. This option sets checksum. TYPE is hash type. The supported hash type is listed in "Hash Algorithms" in "aria2c -v". DIGEST is hex digest. For example, setting sha-1 digest looks like this: sha-1=0192ba11326fe2298c8cb4de616f4d4140213838 This option applies only to HTTP(S)/FTP downloads. * Added --hash-check-only opiton. Added --hash-check-only opiton. If true is given, after hash check using --check-integrity option, abort download whether or not download is complete. The default value is false. * Added --download-result option. Added --download-result=OPT option. This option changes the way "Download Results" is formatted. If OPT is 'default', print GID, status, average download speed and path/URI. If multiple files are involved, path/URI of first requested file is printed and remaining ones are omitted. If OPT is 'full', print GID, status, average download speed, percentage of progress and path/URI. The percentage of progress and path/URI are printed for each requested file in each row. * Added --rpc-allow-origin-all option. This option adds Access-Control-Allow-Origin header field with value '*' to the RPC response. * Ignore --out option supplied in command-line if -i is used. You can still use out option in the text file specified in -i. * Disable SSLv2 by default and optimize memory usage. Patch from Cristian Rodríguez. * Added libnettle and libgmp support. libnettle and libgmp is used by default. Old implementation uses libgcrypt as default. If more and more Linux distributions offer libnettle linked GnuTLS, then this change decrease library dependency against libgcrypt and libgpg-error. The current library detection for libnettle and libgmp is very simple, just use AC_SEARCH_LIBS. util::generateRandomData() was written using SimpleRandomizer, thus no external library dependency from this function. * In MinGW32, open file with UNICODE filename and print them in ANSI.
2011-08-09Update to 1.12.1ryoon2-6/+6
Changelog: aria2 1.12.1 ============ Release Note ------------ This release adds RFC 6249 Metalink/HTTP support. Current implementation only uses rel=duplicate links. --enable-direct-io option was deprecated because of performance issue. Since recent GnuTLS uses libnettle as default instead of libgcrypt, this release added initialization code for libgcrypt. Changes ------- * Initialize libgcrypt. We relied initialization of libgcrypt on gnutls_global_init(), but recent change in gnutls, which changes default crypto backend from libgcrypt to libnettle, leaves libgcrypt uninitialized if it uses libnettle as backend(and this is likely because libnettle is chosen by default). To fix this issue, we simply initialize libgcrypt on our own. * Throw exception with error message if gnutls_global_init() failed. * Implemented Metalink/HTTP. Link header fields from first Metalink server is utilized as described in rfc6249. We only set digest from Digest header field to DownloadContext only when PieceStorage is not initialized(in other words, before file size is known). After PieceStorage is initialized, Digest header field is used to check the value is the same in digest in DownloadContext. Current implementation only handles rel=duplicate. * Remove Metalink content-type after first server response. We don't accept Metalink content-type after first server response. * Updated Russian translation of aria2 man page. Thanks to ITriskTI for translation. * Fixed the bug due to dangling pointers in RequestGroup. RequestGroup holds a poitner to btRuntime_ and peerStorage_. After removing them from BtRegistry, we failed to set 0 to them. When program access them, it goes undefined world, such as random crash. We found this bug when pasuing download and valgrind warned memory corruption. * Added log message to clarify error for BitTorrent server socket. * Added #deprecated help tag. * Removed deprecated options: --enable-xml-rpc, --xml-rpc-listen-all, --xml-rpc-listen-port, --xml-rpc-max-request-size, --xml-rpc-user, --xml-rpc-passwd. * Removed use of O_DIRECT because of performance issue. Deprecated --enable-direct-io option. * Increased the maximum number of in-flight request in BitTorrent. * Added --log option to aria2rpc
2011-07-14Update to 1.12.0ryoon3-8/+10
Changelog: 1.12.0 Changes ------- * Use ServerStat to find faster server. This is useful when several downloads were started in parallel, but one download is slow and the other downloads have completed. Then aria2 knows which servers are fast by the results of completed downloads, and check the available URIs of slow downloads to see faster server is available there. If so, use it instead of current slow one to make download faster. * Added Russian translation of man page and HTML manual contributed by ITriskTI. * Added aria2.getGlobalStat RPC method. It returns overall download/upload speed and the number of active/stopped/waiting downloads. * Added --pause option. This option pauses download after added. This option is effective only when --enable-rpc=true is given. When --save-session option is used and there are paused downloads, they are saved with --pause=true so that it will become paused state when the session is recovered. * Abort aria2 if it could not setup any RPC server. * Added --truncate-console-readout option. This option truncates console readout to fit in a single line. This is default. Give false value to this option to tell aria2 not to truncate console readout. * Cache and reuse RpcMethod objects. * Allowed missing params in system.multicall RPC method. * Added --stream-piece-selector option. This option specifies piece selection algorithm used in HTTP/FTP download. Piece means fixed length segment which is downloaded in parallel in segmented download. If 'default' is given, aria2 selects piece so that it reduces the number of establishing connection. This is reasonable default behaviour because establishing connection is an expensive operation. If 'inorder' is given, aria2 selects piece which has minimum index. Index=0 means first of the file. This will be useful to view movie while downloading it. --enable-http-pipelining option may be useful to reduce reconnection overhead. Please note that aria2 honors --min-split-size option, so it will be necessary to specify a reasonable value to --min-split-size option. * Removed unnecessary template parameter from std::make_pair call. The patch was contributed from Dan Fandrich. * Implemented fast file allocation in MinGW32 build. We use SetFilePointerEx and SetEndOfFile to allocate extents. This only works with NTFS. To enable this feature, --file-allocation=falloc must be given. * Only percent-encode non-printable ASCII chars(0x00-0x1f), non-ASCII chars(>0x7f), ' ', '"', '<' and '>' for URIs supplied by user and remote server(usually Location header field). * Don't throw exception if Z_BUF_ERROR is encountered in GZipEncoder. This fixed the bug that compressed RPC request failed. * Don't save removed download in --save-session text file. Now stat column of removed downloads in Download Results is 'RM' instead of INPR. 1.11.2 Changes ------- * Updated Japanese, Spanish and Simplified Chinese translation. Thanks to all translators. * Eliminated few seconds delay when downloads stop or pause. * Added --metalink-base-uri option. --metalink-uri option specifies base URI to resolve relative URI in metalink file stored in local disk. If URI points to a directory, URI must end with '/'. * Run batch file with cmd.exe. Quoted user command. It seems that we have to specify the full path to cmd.exe in the first argument of CreateProcess() to run batch file in proper manner. We first determine the full path to cmd.exe. To do this, we get windir environment variable and concatenate it with "\system32\cmd.exe". * Fixed the bug that the message "Loaded cookies from ..." appears when loading cookies from that file failed. * Applied patch from Dan Fandrich. This patch fixes compatibility issue when compiling aria2 on older systems. * Support relative URI in Metalink file. If relative URI is found in Metalink file, aria2 resolves its full URI contatenating the URI from which Metalink file is retrieved and relative URI in Metalink file. This feature is not available if Metalink file in local disk is specified in command line. * Erase user and password specified in command-line from argv. The user and password is masked with '*'. * If no data type tag is used in XML-RPC, treat the data as string.
2011-06-10recursive bump from icu shlib major bump.obache1-1/+2
2011-05-04Update to 1.11.1ryoon3-17/+7
* aria2-metalink option is removed. This is enabled by default already. Changelog: aria2 1.11.1 ============ Release Note ------------ This release fixes the bug that aria2 does not work on platforms which have kqueue() system call due to invalid timeout parameter. The --show-console-readout option was added. This option toggles the appearance of console readout. Changes ------- * Added --show-console-readout option. This option toggles appearance of console readout. * Fixed the bug that microsecond part of timeval overwlows in waitData(). This bug affects platforms which have kqueue() system call. Those systems are FreeBSD, OpenBSD, NetBSD and Darwin (Mac OS X). aria2 1.11.0 ============ Release Note ------------ This release adds JSON-RPC interface. The JSON-RPC and XML-RPC shares same APIs. The JSON-RPC also supports JSONP. 2 new options were added: --retry-wait and --async-dns-server. The downloads added by aria2.addTorrent and aria2.addMetalink RPC method are now saved to the file specified in --save-session option. The proxy options and related environment variables now accept https:// and ftp:// scheme. This release fixes the bug that causes segmentation fault when unpausing downloads in some situations. MinGW32 build now looks for USERPROFILE and the combination of HOMEDRIVE and HOMEPATH to get user's home directory and doesn't check permission of .netrc file. Changes ------- * Updated gettext to 0.18 * Added JSON-RPC support. --enable-xml-rpc was deprecated and --enable-rpc should be used instead. Similarly, --xml-rpc-* options were replaced with --rpc-* options. We are implementing JSON-RPC based on JSON-RPC 2.0 draft spec. * Fixed rounding error in DownloadEngine::run(). This fixes the bug that executeCommand() with Command::STATUS_ALL is not called in every interval correctly because of rounding error in timer. * Refresh buckets at DHT initialization without checking serialized time. Checking serialized time does not work if you stop aria2 as soon as it started DHT. The serialized time in dht.dat will be updated, but buckets are not updated and still old. When you restart aria2 again soon, it does not refresh buckets because serialized time is recent. * Save downloads added by aria2.addTorrent or aria2.addMetalink in --save-session file. Uploaded data are saved as file named hex string of sha1 hash of uploaded data plus extension(".torrent" for torrent and ".meta4" for metalink). For example, 0a3893293e27ac0490424c06de4d09242215f0a6.torrent. The directory where these files are saved is specified by --dir option. These file paths are written in --save-session file. * Fixed the bug that causes segmentation fault when unpause RequestGroup which has resolved BtDependency. * Look for USERPROFILE and the combination of HOMEDRIVE and HOMEPATH to get user's home directory in MinGW32 build. Usually HOME environment variable is defined in *nix like OSes, but not in Windows. So in MinGW32 build, if HOME is not defined, we also look for USERPROFILE and the combination of HOMEDRIVE and HOMEPATH. * Fixed the bug that DownloadContext::basePath_ is not escaped. * Added Date, Expires and Cache-Control response header field to RPC response. * Added --async-dns-server option. This option accepts comma separated list of DNS server addresses used in asynchronous DNS resolver. Usually asynchronous DNS resolver reads DNS server addresses from /etc/resolv.conf. When this option is used, it uses DNS servers specified in this option instead of ones in /etc/resolv.conf. You can specify both IPv4 and IPv6 address. This option is useful when the system does not have /etc/resolv.conf and user does not have the permission to create it. * Accept https:// and ftp:// in proxy options and environment variables. * Fixed overflow in the calculation of progress percentage for file allocation and hash check when off_t is 32bit. * Accept HTTP 304 reply as success when If-None-Match request-header field is specified using --header option. When --conditional-get is used, --allow-overwrite is now required to overwrite existing file. * Added aria2.removeDownloadResult RPC method. The method signature is aria2.removeDownloadResult(gid). This method removes completed/error/removed download denoted by gid from memory. This method returns "OK" for success. * Use IP address of control connection to connect to the remote server in FTP passive mode. * Don't check permission of .netrc file in MinGW32 build. * Added --retry-wait option. This option was once existed in aria2 but erased on 2009-09-20. Now it is resurrected once again. We choose 0 as default value for backward compatibility. Now we retry HTTP download when remote server returns "503 Service Unavailable" if --retry-wait > 0. We also added error code 29: HTTP_SERVICE_UNAVAILABLE. * Don't show metadata download and paused download in "Download Results".
2011-04-22recursive bump from gettext-lib shlib bump.obache1-1/+2
2011-03-02Update to 1.10.9.ryoon4-10/+16
Clear some warnings of pkglint. Changelog is too long to include here. See NEWS file.
2011-02-28Reset maintainer for retired developers.wiz1-2/+2
2010-07-25Update aria2 to 1.10.0.obache4-10/+15
aria2 1.10.0 ============ This release adds an option to limit the number of connections to the same host in each download. aria2 now chooses server which is least used in aria2c instance. This release also adds Chromium cookie support and HTTP only conditional download support which is download file only when the local file is older than remote file. aria2 now can handle %2F in FTP URI properly. HTTP/1.1 chunked decoder was fixed. For Linux, aria2 uses fallocate by default if it is usable. aria2 1.9.5 ============ This release fixes the bug that causes corrupted file. It also fixes assertion error in DefaultPeerStorage class. Now aria2 doesn't reset referer to "" on redirect. log and log-level option can be used in aria2.changeGlobalOption XML-RPC method. This means you can dynamically start or stop logging and change log file and log level. aria2 1.9.4 ============ This release fixes the bug that connection reuse on FTP does not work if FTP server changes root directory based on account. It also fixes the bug that reading Metalink document from pipe (-M- option) does not work when aria2 is built with expat or old libxml2(2.7.6 or earlier). Now aria2 does not emit error if given Metalink document is empty(no file element). The response of aria2.tellStopped XML-RPC method now has more information: totalLength, completedLength, uploadLength, bitfield and so on. aria2 1.9.3 ============ This release fixes the bug that aria2 cuts filename after ';' if filename in Content-Disposition header includes ';'. It also fixes the bug that name attribute of file element in Metalink file is not properly sanitized. aria2 1.9.2 ============ This release adds kqueue, port_associate/port_getn and poll() support for socket event notification to eliminate 1024 file descriptor limitation of select() call. The bug that aria2.unpause and aria2.unpauseAll XML-RPC method fail when -s1 is given in command-line argument was fixed. aria2 1.9.1 ============ This release adds the ability to save unfinished downloads as text file. aria2 can read the file with -i option on restart. This release also adds the ability to download file from scratch when aria2 sees resume is not supported by remote server. This feature is disabled by default. See --always-resume option for details. --no-proxy option accepts IPv4 network address with CIDR block. aria2 now doesn't send "Accept-Encoding: deflate, gzip" by default. --http-accept-gzip option was added to toggle this behavior. aria2 now treats lines starting "#" in -i list as comments. Several XML-RPC methods were added: aria2.pause, aria2.unpause, aria2.shutdown, and their families. The new exist status code '8' was added. The bug that makes aria2 hang when system time changes while aria2 is running was fixed on MinGW32, Mac OS X and the system which has clock_gettime(). Several other bugs also have been fixed. aria2 1.9.0 ============ This release adds Metalink4 support and BitTorrent Local Peer Discovery. aria2.changeUri XML-RPC method was added. It enables you to add/remove URIs to existing downloads dynamically. The user and password for proxy server now can be specified in command-line separately. We refactored the code based on profiler results, so aria2 now runs more efficiently than ever. Russian and Simplified Chinese translation were updated. aria2 1.8.3 ============ This release fixes the bug that --file-allocation=falloc doesn't work with single file download. It also fixes the bug that the return value of aria2 is unreliable if error occurs before download begins. When custom request headers specified by --header option now override built-in headers if they have same name. aria2 1.8.2 ============ s release fixes the bug that causes segmentation fault with --max-file-not-found option involved. Now aria2 can handle redirected URI which is not properly percent encoded. In MinGW32 build, console readout is now always cut by 80 characters. 'bittorrent' key is added to the response of tellStatus XML-RPC method. The associated value of the key is a struct and contains data retrieved from .torrent file, such as name, announce-list, comment, etc. aria2 1.8.1 ============ This release fixes the bug that causes segmentation fault if unknown options exist in aria2.conf file and user cannot include empty line in aria2.conf. Following new command line options are added: --http-no-cache, --bt-metadata-only and --human-readable option. --dir option now treats "" as ".". --all-proxy, --http-proxy, --https-proxy and --ftp-proxy option accept empty string "". When "" is given, it erases previously defined proxy. aria2.getSessionInfo XML-RPC method was added. aria2.tellWaiting and aria2.tellStopped XML-RPC method accept a negative integer as offset. For example, in aria2.tellWaiting, 'offset' == -1 points last download in the waiting queue and 'offset' == -2 points the download before the last download, and so on. 'dir' and 'files' key were added to the response struct of aria2.tellStatus XML-RPC method. The value associated with 'files' key is the list of files. Its element is the same struct used in aria2.getFiles XML-RPC method. 'uris' key was added to the response struct of aria2.getFiles XML-RPC method. The value associated with 'uris' key is the list of URIs. Its element is the same struct used in aria2.getUris XML-RPC method. aria2 now returns gzip compressed XML-RPC response if XML-RPC client accepts gzip content encoding. aria2 1.8.0 ============ This release fixes the bug that configure script fails to detect GnuTLS library if --without-sqlite3 is given. The new XML-RPC methods are added: aria2.getOption, aria2.getGetGlobalOption, aria2.changePosition, aria2.tellStopped and system.multicall. --bt-save-metadata option is added. This option saves metadata as .torrent file. This option has effect only when BitTorrent Magnet URI is used. aria2-1.7.2 ============ This release fixes the bug that aria2 listens wrong port in BitTorrent/FTP downloads when --interface option is used. If --metalink-file='-' is given, aria2 now reads Metalink file from stdin. Magnet URI is printed in the output of -S option. DHT is now enabled by default. DHT doesn't start while aria2 only handles HTTP/FTP downloads. On the first torrent download begins, aria2 initiates DHT functionality. After that, DHT runs until aria2 exits aria2 1.7.1 ============ This release fixes the bug that --bt-prioritize-piece=tail is not working. aria2 1.7.0 ============ This release adds BitTorrent Magnet URI support. 3 options were added: the ability to bind to particular interface, disabling IPv6 and prioritizing piece in BitTorrent downloads. In configure script, if --with-PACKAGE and --enable-FEATURE are given but PACKAGE is missing in the system or FEATURE cannot be enabled in the current configuration, the script now prints error message and exits. --http-auth-scheme option was removed since it is useless. Updated Russian, Ukrainian, German and French translations. aria2 1.6.3 ============ This release fixes reported bugs and updates Polish, Catalan, French, Italian, Russian and Japanese translations. aria2 1.6.2 ============ This release fixes segmentation fault error if URI to download contains printf format string and logging is enabled. The build scripts are updated to automake 1.11 and autoconf 2.64. Updated Ukrainian translation. aria2 1.6.1 ============ This release fixes memory leak in HTTP/FTP download. It also fixes the bug that the option values changed by XML-RPC changeOption and changeGlobalOption methods are cleared. Now User-agent and Peer ID include version number. Updated Simplified Chinese translations. aria2 1.6.0 ============ This release changes the default behavior of XML-RPC server. Now it listens only on local loopback interface by default for security reasons. If you want to connect to aria2c from remote hosts, use --xml-rpc-listen-all option. The XML-RPC client sample script written in Ruby are now included in the archive under doc/xmlrpc directory. These scripts are licensed under MIT License. The help category tags are now start "#" to distinguish them from keyword search. Several help category tags were added: #xml-rpc, #cookie, #hook and #file. --retry-wait option was removed because it doesn't work properly under the architecture. Updated Bulgarian, Russian, Slovak and Japanese translations. aria2 1.5.2 ============ This release fixes the bug that when the first attempt to establishing connection fails, aria2 don't try to connect another address and a download immediately fails. -S output was enhanced: exact file size is now printed. For -S with torrent file, meta data such as comment, comment.utf-8, created by and creation date are now printed. Ukrainian and Russian translations were updated. aria2 1.5.1 ============ This release fixes linker error in unit test code on 32bit systems. The unit test failure on mingw32 was also fixed. The file I/O error handlings were written. aria2 1.5.0 ============ This release adds WEB-Seeding support for multi-file torrent. --bt-stop-timeout option was added. This function stops BitTorrent download if the download speed is 0 in consecutive given seconds. aria2 now tries all resolved addresses to connect to remote servers in HTTP(S)/FTP until it gets connected. For XML-RPC, two new methods were added: aria2.tellWaiting and aria2.getVersion. The error code is available in the response of aria2.tellStatus methods for stopped/completed downloads. --use-head is now disabled by default since using HEAD request causes problems in some web sites. The behavior of -D option has been changed: If -D is specified, the current working directory is set to / and stdin, stdout and stderr are redirected to /dev/null. This release fixes the bug that zombie processes are created when commands specified in --on-download-* options are executed and the bug that http-user, http-passwd, ftp-user and ftp-passwd are ignored when they are given via XML-RPC. Updated Russian, Italian, Danish, Bulgarian, Japanese and Ukrainian translations. aria2 1.4.1 ============ This release fixes the compile error without the development package of c-ares library installed. The compile error under MinGW was fixed. aria2.tellStatus XML-RPC method now returns "uploadLength" and "numSeeders". Ukrainian translation was updated. aria2 1.4.0 ============ This release adds XML-RPC interface and the ability to run command when download started/stopped and the ability to save cookies. The current XML-RPC API allows users to add http(s)/ftp/torrent/Metalink download and change options dynamically. The APIs such as reporting download progress, file paths, URIs and peer information are also available. For complete API specification, see XML-RPC INTERFACE section in man page and http://apps.sourceforge.net/trac/aria2/wiki/XmlrpcInterface. The console readout was slightly updated and now includes the number of seeders the client has connected to. Slovak translation was added. Ukrainian and Brazilian Portuguese translation were updated. aria2 1.3.3 ============ This release fixes the bug that --check-integrity option doesn't work properly if a file including last piece is missing and increases internal receive buffer for FTP in order to receive big banner. Ukrainian, Russian and Simplified Chinese translations were updated. aria2 1.3.2 ============ This release fixes the bug that prevents certain BitTorrent downloads from finishing and possible segmentation fault when gzip decoding is involved and infinite loop bug if last "0" chunk-size marker is not received in chunked encoding transfer. aria2 now supports WEB-Seeding(HTTP-Seeding) for single file torrent. Ukrainian translation was updated. aria2 1.3.1 ============ This release fixes the bug that aria2 wrongly determines that specified share ratio is reached because of miscalculation of upload bytes and the bug that upload limit exceeds the value specified in --seed-ratio option depending on the timing of the execution of SeedCheckCommand. aria2 1.3.0 ============ This release adds the ability to specify the output filenames in BitTorrent downloads and the option to limit overall download speed and dry run mode which just checks the availability of the remote file. -i list option can now take new options: select-file and index-out. The default behavior of sending HTTP Authorization header is reverted back to version 1.1.2 style. The bug in AdaptiveURISelector was fixed. You can now seed read-only files in BitTorrent. --file-allocation option can take new parameter 'falloc'. If it is given and you are using newer file systems such as ext4, btrfs or xfs, large(few GiB) files are allocated almost instantly. The performance optimization has been done and aria2 runs more efficiently. Indonesian, Russian, Italian, Ukrainian, Simplified Chinese, Japanese, Spanish and Norwegian Nynorsk translations were updated.
2009-09-22having two options for the same thing is confusingtnn2-5/+6
2009-07-03use libgnutls-config.mk to make the (non-default) "gnutls" optiondrochner1-1/+2
work with gnutls-2.8
2009-06-14Remove @dirrm entries from PLISTsjoerg1-2/+1
2009-03-08Update to aria2-1.2.0. Many, many changes (too verbose to list here);bjs5-74/+43
please see ChangeLog. NOTE: libares is no longer supported; libcares is used by default.
2009-01-25Fixed invalid dependency. cppunit 1.10.2 has been released, 10.1.2rillig1-3/+3
hasn't.
2009-01-03Work around API bug in pre-christos-time_t NetBSD, where structdholland3-2/+21
timeval's seconds are "long" rather than "time_t". Passing these seconds to localtime_r() breaks on 64-bit platforms where those types aren't the same. Fixes PR 40323 from Andreas Burghardt. PKGREVISION++ as a precaution, since I patched the source.
2008-10-29Update to aria2-0.16.2. Notable changes:bjs3-7/+13
- Added Serbian, Vietnamese, and Traditional Chinese translations. Updated French, Simplified Chinese, and Japanese Translations. - Added length equality test to operator== to drop a piece message whose length does not match to the requested one. - Fixed the bug that aria2 aborts when a request larger than 16KiB is recieved. In this fix, if a request larger than 16KiB length is received, aria2 disconnects the peer. - Updated man page. Changed doctype of aria2c.1.html to manpage in order not to replace '--' with em dash character. - Added --auto-save-interval=SEC option. A control file(*.aria2) is saved every SEC seconds. - Added --dht-file-path option to change the path to dht.dat, which is a serialized DHT routing table. - Fixed the bug that last character in URI is not encoded. - Fixed the bug that referer header field contains fragment. Now Request class removes fragment part of URI and encodes it in Request::setUri() and setReferer().
2008-10-10Update to aria2-0.16.0. Lots of bug fixes, improved help text,bjs3-10/+29
plus firefox3 cookie support. This option requires sqlite3, though the firefox3 option also enables this functionality.
2008-09-08Update to aria2-0.15.3. Changes:bjs3-7/+8
Added Turkish translation. Updated German and Russian translations. If an error occurred with a URI, remove identical URI from remaining URI list because it is likely that same error occurred in the end and it is waste of time. Added -lrt to LIBCARES_LIBS if -lrt is needed to link program with -lcares. Moved implementation to SimpleRandomizer.cc from SimpleRandomizer.h. Added return value of getpid() to argument of srand() to achieve more randomized value. Contact tracker frequently when the number of connections are 0 and download is not finished yet. Moved threshold values to UTPexExtensionMessage. Added _incoming member to Peer class and made it true if the peer initiated connection. Don't add those peer to UTPex message. If extended handshake is received, assign _incoming to false. Fixed infinite loop bug in FTP when SIZE command failed. Made files whose name ends with ".gz", ".tgz" not inflated by Content Encoding Decoder. Removed size threshold for turning off on the fly inflation because resulting file may or may not be inflated depending on the file size and I think it is not expected by users. This change fixes segmentation fault when Metalink file contains gzipped file and its filesize is provided. Fixed chunk checksum validation cannot detect trailing garbage data. BUG#2074141
2008-08-19Update to version 0.15.2. This release features extensive bug fixes andbjs3-8/+13
significant feature enhancements; it also now builds on OpenSolaris (tested with NexentaOS by development community). I urge all users to upgrade. A _partial_ list of changes: - Added and/or updated Danish, Greek, Spanish, Catalan, Norwegian Nynorsk, Bulgarian, French, Catalan, and Japanese translations. - Man page fixes. - Fixed: numCommand is less than the value specified in -C option. - Myriad bug fixes. - Now uses name attribute in Metalink as local filename in BitTorrent downloads. BUG#2033999 - Fixed memory leaks in test code. - Fixed wrong argument passing to BitfieldMan::isBitSet() - Initialized _directIOAllowed - Fixed memory leak in gzip decoder and metalink parser state machine. - Plug many other memory leaks and fix unmatch malloc/free calls. - Removed max chunk size check. This change fixes BUG#2040169 - Fixed the bug that causes segmentaion fault when resuming download using metalink without size tag. Reproducible only using HTTP URI. - Removed writable check when socket's send buffer is full in BitTorrent downloads to lower CPU usage. - Fixed broken gzip inflation. Turn off segmented downloading if gzip content is smaller than or equal to 1MiB and inflate the data on the fly, because HTTP response header doesn't contain the length of inflated file we can't determin where the chunk of data should be written. On the other hand, if gzip content is larger than 1MB, then turn off on the fly inflation, because some servers returns "content-type: gzip" for *.tgz, *.gz files. - Added gzip decompressor via libz. - Cache last calculated average download/upload speed. - Supported absolute/relative path in Location header field. - Use File::exists() instead of File::isFile() to allow non- regular file such as block special files. - Added a message "aria2 doesn't verify signature" to log message when signature file is saved. - Added the ability to save signature when download is completed if signature is available. The filename of signature file is the path to download file followed by ".sig". If it already exists, then signature will not be saved. - Improve accuracy of documentation and rename some options to be more descriptive of their functions/purposes. - Added the ability to retrieve signature from Metalink file. A retrieved signature is stored in Signature class and it is held by DownloadContext class. Note that aria2 doesn't verify signature. - Added --bt-seed option. If --bt-seed=true is given at the command-line, aria2 seeds previously downloaded files without validating piece hashes. - Fixed the compile error on Nexenta OS(GNU/Solaris OS). (Don't define `struct addrinfo' when __sun is defined) - Fixed the bug that UTF-8 encoded URL is not URL-encoded - Properly differentiate between ftp errors and actual zero-byte files (now supports ftp servers which do not recognize SIZE raw command).
2008-07-15Update to version 0.14.0+1. This release brings us myriad bug fixesbjs2-6/+6
plus some new features. ========================================================================== Changes: aria2-0.14.0+1 * Fixed the code that refers static member variable from non-static context. Notes: This release adds epoll support for linux and the ability to limiting the number of files to be opened to support more than 1024 files in multi file torrent. Several bugs in BitTorrent downloads are fixed. From this release, aria2 downloads a file using 5 connections in HTTP/FTP by default and the behavior of -s option has changed. See the project web page for more details. Changes: aria2-0.14.0 * Changed -s options behavior. Now it means the number of connections made simultaneously in each http/ftp download. If 1 URL is specified, the behavior is the same with old implementation. If -s N is given and more than N URLs are specified, first N URLs are used and remaining URLs are used for backup. If less than N URLs are specified, some of URLs are used more than once so that totally N connections are made simultaneously. * Changed default value of -s option from 1 to 5. Also max value of -s option is changed from 5 to 16. * Reduced CPU usage on high load. * Added epoll support. * Fixed compile error on debian etch. BUG#1980766 * Added --bt-request-peer-speed-limit=SPEED option. In BitTorrent downloads, if the download speed is lower than SPEED, aria2 initiates and accepts connections ignoring max peer cap. * Reduced read operation for hash calculation. * Fixed the bug that aria2 cannot respond bttrack's nat check properly. * Fixed the bug that HTTP downloads don't start with old libraries. * Fixed the bug that aria2 aborts when a path to a directory is given in command-line. * Added --bt-max-open-files option, which specifies maximum number of files toopen in each BitTorrent download. REQUEST#1811507 * Create only requested files and files which shares a piece with requested file in multi-torrent downloads. Directory structures are also created in the same rule. * When there is not enough space in disk, aria2 prints error in the console and cancels that download. BUG#1640332
2008-06-05Update to 0.13.2+1. Many bug-fixes; the ChangeLog is far too verbosebjs2-6/+6
even to permit distilling it and posting it here. If you're curious, simply read the ChangeLog contained in the distfile.
2008-04-16Update to version 0.13.1+2. This update includes myriad bug fixesbjs4-51/+46
and feature enhancements--way too many for this commit message. While here, deprecate aria2-metalink option. Aria2 now supports building with libexpat, so we do that by default now. Some of the more significant changes: ------------------------------------- * Fixed compile error without gnutls/libgcrypt/libgpg-error and openSSL installed. Fixed compilation on: x84-64 platform, Mac OSX, g++-4.3, and without c-ares/ares. * Added Simplified Chinese translation. Also updated the following translations: Polish, Dutch, German, Thai, Indonesian, Norwegian Nynorsk, Hungarian, Finnish, Hebrew. * Changed inactive connection timeout to 120. To accept more mulually interested peers, disconnect peer when there is no interest between us after certain time passed. Lengthened DNS timeout to 30. I think old value '10' will be a little bit short when some DNS servers are offline and several DNS servers are tried. It should be configured by command-line option. * Fixed the bug that prevents aria2 from stopping other than by pressing Ctrl-C in BitTorrent download. It is reproducible using --seed-time option. aria2 doesn't stop even after --seed-time is satisfied and continues to output blank lines in the console. * Added Message Stream Encryption(MSE) support. Currently, aria2 accepts incoming connections with Obfuscation Header and legacy BitTorrent Header and establishes connections with Obfuscation Header first and if failed then retry with legacy BitTorrent header. If plain text and ARC4 is provided, aria2 always choose ARC4. The new option to change the default behavior is planned. For tracker extension, "supportcrypto=1" is added statically. * Added the ability to load nodes from torrent file. These nodes are added to the routing table when downloading that torrent. * Added the ability to stop aria2 itself when given time has passed from start. Use --stop option to specify time in minutes. When 0 is given, this feature is disabled. before calling RequestGroupMan::fillRequestGroupFromReserver(). Without this modification, the result list shows "ERR" when aria2 is stopped by --stop option. It should be "INPR". Bootstrap through node added by port message. Currently bootstrap is executed if the number of buckets in routing table is 1. * Added DHT functionality, compatible with mainline. DHT is disabled by default. To enable it, give --enable-dht to aria2c. You may need to specify entry point to DHT network using --dht-entry-point. DHT uses UDP port to listen incoming message. Use --dht-listen-port to specify port number. Make sure that your firewall configuration can pass through UDP traffic to the port. The routing table is saved in $HOME/.aria2/dht.dat. Request peers though DHT only when download hasn't finished.
2008-02-18Update to version 0.12.1+1. Removed patches, as I believe autoconfbjs9-123/+10
should automagically handle the features stuff (or at least other packages that I look at don't seem to need this if they use autoconf, haven't looked extensively, though). This release brings lots of bug fixes. Among them are: 2008-01-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> Fixed the bug that EX_TOO_LONG_PAYLOAD exception is thrown if just payload length(4bytes) are received. This happens because lenbufLength is not updated in this particular case and successive call of receiveMessage() overwrites payload length with bytes recieved which are payload body. 2007-12-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> Fixed the bug that causes aria2 not to finish download. BUG#1855875. I could reproduce this bug in following procedure: 1. Stop the download at the very beginning(1% or 100KB downloaded). 2. Restart aria2. 3. You see the download stopped around 99%. If timeout is reached, then _nextCommand is unused and it may contains segments and they won't be canceled. Actually, timeout is not needed here because if the server dropped connection, then retry is made. 2007-12-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> Fixed the bug that returns incomplete data when it contains null character. A convenient constructor was also added. 2007-12-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> Fixed the bug that prevents aria2 from loading cookie file when expire value is greater than 2^31-1. BUG#1851066 2007-12-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> Fixed possible memory leak when an exception is thrown. 2007-12-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> Fixed the bug: only first announce URL is tried in AnnounceTier, in stopped and completed event. 2007-12-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> Removed unnecessary string copy. Updated doc and corrected indentation.
2008-01-18Per the process outlined in revbump(1), perform a recursive revbumptnn1-1/+2
on packages that are affected by the switch from the openssl 0.9.7 branch to the 0.9.8 branch. ok jlam@
2007-12-14Update to version 0.12.0. Also, fix nbcompat includes (they were missingbjs9-29/+39
<nbconfig/config.h>. Partial list of changes: 2007-12-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> Removed unnecessary string copy. Updated doc and corrected indentation. * src/Base64.cc Fixed compilation warnings * test/DataTest.cc * test/HttpRequestTest.cc * test/MetaFileUtilTest.cc * test/RequestTest.cc * Release 0.12.0 Added Brazilian Portuguese, Catalan, Italian, Spanish, Swedish translations. Many thanks to translators. * po/{ca,es,it,pt_BR,sv}.po * po/LINGUAS Fixed the bug#1845750; CTRL+C does not stop torrent. aria2 repeatedly sends stopped request when tracker returns error code. Added a message when ctrl-c is hit. Now second ctrl-c is also handled in signal handler. Changed Direct/IO enable/disable procesure in file allocation routine. Disable directIO if offset is not multiple of 512. (~SingleFileAllocationIterator): Removed a call to disableDirectIO. * src/MultiFileAllocationIterator.cc (allocateChunk): Enable created SingleFileAllocationIterator's directIO. * src/FileAllocationEntry.cc (FileAllocationEntry): Enable directIO here. (~FileAllocationEntry): Disable directIO here. Fixed the bug: aria2 doesn't utilize fast set index offered by peer. Rewritten direct I/O support routine Fixed compile error without message digest support. Enable direct I/O support in checksum checking. Added --allow-piece-length-change option. Fixed: duplicated result entry appears when exception is thrown in RequestGroup::createInitiateConnectionCommand(). * src/RequestGroupMan.cc (fillRequestGroupFromReserver): Add RequestGroup to _requestGroup after RequetGroup:: createInitiateConnectionCommand() succeeds. Externalized message Forced download abort when received negative response from http/ftp server. Added XML2SAXMetalinkProcessor class, which is a lot faster than the predecessor, Xml2MetalinkParser class. I tested them against 94KB metalink file with 1234 chunk checksums. The new one parsed it in 22msec, while it took 6000msec with old one. Rewritten Base64 class for better performance. Fixed the bug#1841757: aria2 will connect to server to only get file size. Suppressed wrong message when finding PreDownloadHandler Eliminated g++-4.2 warning Fixed bug: --check-integrity doesn't work for multi file torrent. Added direct I/O support. The current implementation uses O_DIRECT, which is not posix standard and is tested on linux 2.6.21. Currently only file allocation uses direct I/O.
2007-11-23Update to version 0.11.5. Remove interim patches from SVN.bjs10-282/+11
Changes (patches took us to ~2007-11-11): 2007-11-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> Synchronized translation files with launchpad. * po/fr.po * po/ru.po * po/de.po: Now utf-8 encoding * po/ja.po: Now utf-8 encoding * Release 0.11.5 2007-11-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> urlencode the given url inside Request::parseUrl(...) * src/Request.{h, cc} * src/Util.{h, cc} * test/RequestTest.cc Removed #!metalink3! notation support because it is deleted from the metalink specification. * src/Request.{h, cc} * test/RequestTest.cc 2007-11-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> * src/SocketCore.cc (writeData): Fixed send error with GnuTLS. 2007-10-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> * src/HttpRequest.cc (createProxyRequest): Removed urlencode from user-agent. * test/HttpRequestTest.cc (testUserAgent): Added.
2007-11-16Sync with stable-0.11 branch. Bump rev.bjs9-3/+273
2007-11-07Employ USE_FEATURES for getopt_long and snpritnf. Remove devel/libgetopt ↵bjs8-3/+117
dependency. Bump rev.