head 1.3; access; symbols pkgsrc-2013Q4:1.1.0.6 pkgsrc-2013Q4-base:1.1 pkgsrc-2013Q3:1.1.0.4 pkgsrc-2013Q3-base:1.1 pkgsrc-2013Q2:1.1.0.2 pkgsrc-2013Q2-base:1.1; locks; strict; comment @# @; 1.3 date 2014.03.29.04.15.09; author ryoon; state dead; branches; next 1.2; commitid cmKMK5d4Gjoe2yux; 1.2 date 2014.01.08.16.32.30; author ryoon; state Exp; branches; next 1.1; commitid 9EQeO6ilSBbCGkkx; 1.1 date 2013.06.09.02.11.34; author ryoon; state Exp; branches; next ; commitid f3j8p8WgjAPKLSSw; desc @@ 1.3 log @Update to 0.18.4 Changelog: aria2 1.18.4 ============ Release Note ------------ This release adds new RPC authorization mechanism using --rpc-secret option. The existing --rpc-user and --rpc-passwd options are now deprecated, and all applications using RPC API is strongly encouraged to migrate to the new mechanism. See RPC INTERFACE section in aria2 manual page for the details. The new RPC method, aria2.saveSession, was added, which tells aria2 server to save session file immediately. There are several enhancements and bug fixes. See the changes for the details. Changes ------- * Added support for RPC channel encryption in aria2rpc Patch from David Macek * Add aria2.saveSession RPC method This method saves the current session to a file specified by --save-session option. This method returns "OK" if it succeeds. * Add numStoppedTotal key to aria2.getGlobalStat() RPC method response It shows the number of stopped downloads in the current session and not capped by --max-download-result option. On the other hand, the existing numStopped key also shows the number of stopped downloads, but it is capped by --max-download-result option. * Better handling of 30x HTTP status codes Reference: http://greenbytes.de/tech/tc/httpredirects/ * Implement new RPC authorization using --rpc-secret option Add future deprecation warning to --rpc-user and --rpc-passwd. Warn if neither --rpc-secret nor a combination of --rpc-user/rpc-passwd is set. * Add --enable-color option to enable/disable terminal color output * Add DSCP support * gnutls: Don't fail handshake if returned error is not fatal * Add workaround GnuTLS bug with OCSP status extension and non-blocking socket GnuTLS version 3.1.3 - 3.1.18 and 3.2.0 - 3.2.8, inclusive, has this bug. For these versions, we disable OCSP status extension. * Make GnuTLS log level dependent on the aria2 ones aria2 1.18.3 ============ Release Note ------------ This release fixes the bug which may cause assertion failure after multi-file downloads (e.g., multi-file metalink or torrent) are performed several times due to the bad handling of --bt-max-open-files option. Changes ------- * Fix crash if unpause failed before assigning BtProgressInfoFile object * Enable and check PIE in makerelease-osx * Fix bug that numOpenFile_ is not reduced when MultiDiskAdaptor is deleted This bug caused assertion error in RequestGroupMan::ensureMaxOpenFileLimit @ text @$NetBSD: patch-configure,v 1.2 2014/01/08 16:32:30 ryoon Exp $ --- configure.orig 2013-12-26 15:44:21.000000000 +0000 +++ configure @@@@ -19872,13 +19872,13 @@@@ See \`config.log' for more details" "$LI fi use_md="" -if test "x$have_appletls" == "xyes"; then +if test "x$have_appletls" = "xyes"; then use_md="apple" $as_echo "#define USE_APPLE_MD 1" >>confdefs.h else - if test "x$have_wintls" == "xyes"; then + if test "x$have_wintls" = "xyes"; then use_md="windows" $as_echo "#define USE_WINDOWS_MD 1" >>confdefs.h @@@@ -19913,7 +19913,7 @@@@ $as_echo "#define USE_INTERNAL_MD 1" >>c fi # Define variables based on the result of the checks for libraries. -if test "x$have_appletls" = "xyes" || test "x$have_wintls" == "xyes" || test "x$have_libgnutls" = "xyes" || test "x$have_openssl" = "xyes"; then +if test "x$have_appletls" = "xyes" || test "x$have_wintls" = "xyes" || test "x$have_libgnutls" = "xyes" || test "x$have_openssl" = "xyes"; then have_ssl="yes" $as_echo "#define ENABLE_SSL 1" >>confdefs.h @ 1.2 log @Update to 1.18.2 * 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 @ text @d1 1 a1 1 $NetBSD: patch-configure,v 1.1 2013/06/09 02:11:34 ryoon Exp $ @ 1.1 log @Update to 1.17.1 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. @ text @d1 1 a1 1 $NetBSD$ d3 1 a3 1 --- configure.orig 2013-05-26 07:24:31.000000000 +0000 d5 1 a5 1 @@@@ -19195,7 +19195,7 @@@@ See \`config.log' for more details" "$LI d9 2 a10 2 -if test "x$have_osx" == "xyes"; then +if test "x$have_osx" = "xyes"; then d14 16 @