Commit cf511e19 authored by Kartik Mistry's avatar Kartik Mistry 🇮🇳

Imported Upstream version 1.19.1

parent ad185596
*~
*.o
*.lo
*.la
*.ce
*.cce
*.he
depcomp
*.m4
Makefile
Makefile.in
missing
autom4te.cache/
config.guess
config.h
config.h.in
config.log
config.status
config.sub
configure
install-sh
.deps/
stamp-h1
INSTALL
*.gmo
ABOUT-NLS
README.html
config.rpath
aria2c.1
aria2c.1.html
intl/
libtool
ltmain.sh
po/aria2.pot
po/remove-potcdate.sed
src/libaria2.pc
test-driver
libaria2api
libaria2ex
libaria2wx
.dirstamp
.libs
compile
main.log
main.trs
test-suite.log
language: cpp
compiler:
- clang
- gcc
sudo: false
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.9
- libstdc++-4.9-dev
- autoconf
- automake
- autotools-dev
- autopoint
- libtool
- pkg-config
- libssl-dev
- libc-ares-dev
- libxml2-dev
- zlib1g-dev
- libsqlite3-dev
- libssh2-1-dev
- libcppunit-dev
before_install:
- $CC --version
- if [ "$CXX" = "g++" ]; then export CXX="g++-4.9" CC="gcc-4.9"; fi
- $CC --version
before_script:
- autoreconf -i
- automake
- autoconf
- ./configure
script:
- make check
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -53,8 +53,8 @@ RUN cd expat-2.1.0 && \
--build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` && \
make install
RUN tar xf sqlite-autoconf-3080700.tar.gz
RUN cd sqlite-autoconf-3080700 && \
RUN tar xf sqlite-autoconf-3080803.tar.gz
RUN cd sqlite-autoconf-3080803 && \
./configure \
--disable-shared \
--enable-static \
......
This diff is collapsed.
This diff is collapsed.
aria2 1.19.1
============
Release Note
------------
This release fixes TLS handshake error with servers which only support
RSA-SHA1 signature algorithm. We removed RSA-SHA1 for enchanced
security, but many users reported there were servers which could not
talk aria2 1.19.0, so added it again for compatibility reasons. For
Windows build, we fixed potential infinite loop bug when TLS is used.
We changed the location where dht.dat and aria2.conf are looked up.
The aria2 manual page described details. Basically we now follow XDG
specification (http://standards.freedesktop.org/basedir-spec/latest/).
For dht.dat, the default location is $XDG_CACHE_HOME/aria2/ directory.
For aria2.conf, the default location is $XDG_CONFIG_HOME/aria2/
directory. To keep the current user configuration working, if aria2
detects dht.dat under $HOME/.aria2/ directory, it is used instead.
Similarly, if aria2.conf exists under $HOME/.aria2/ directory, it is
used instead.
Previously, we return 500 HTTP status if RPC method execution
encountered error. Now it returns with 400 HTTP status with error
code. This is more natural because server processed request and found
an error, and returned error reply correctly. This is not something
server crashed or something. Also, there is RPC libraries which
throws exception if it sees 5XX status code, where 400 is better
because we can examine the error.
Changes
-------
* Update README.android
Providing some workarounds about CA certificates and standard output
Patch from amtlib-dot-dll
* Return 400 HTTP status code if exception was caught while executing
RPC method
Previously, we returned 500 HTTP status code. I think the found in
RPC level, not in HTTP protocol, so 500 is not appropriate.
* WinTLS: Fix potential infinite loop
* Fix on-download-error is executed even if download succeeded
* Update Dockerfile.mingw
Patch from Adam Baxter
* Increase --select-file upper bound to 1m for torrent containing lots
of files
* Fix busy loop with --dry-run and 4xx response for URI listed in
metalink
See GH-430
* Update sqlite in OSX build to 3.8.10.2
* Make LibuvEventPoll compatible with the latest libuv again
* gnutls: Allow SIGN-RSA-SHA1 for compatibility reason
* Make script compatible with both Python 2 and 3
Patch from Vasilij Schneidermann
* Make config and cache files conform to XDG
See http://standards.freedesktop.org/basedir-spec/latest/ for
further details. This implementation decides the default based on
whether a file exists at the legacy location, if it doesn't, it
picks the XDG-conforming location instead.
Patch from Vasilij Schneidermann
* ftp, sftp: Fix heap-after-free bug on exception
* ftp: Fix timeout when reusing FTP connection
* Various MinGW-w64 build improvements
- Fix detection of localtime_r and asctime_r on MinGW-w64
- Fix linking with libintl on MinGW-w64
Patch from David Macek
aria2 1.19.0
============
......
aria2 for Android devices
=========================
aria2 is a lightweight multi-protocol & multi-source download utility
operated in command-line. It supports HTTP/HTTPS, FTP, BitTorrent and
Metalink.
Install
-------
aria2 is not an ordinary Android Java application. It is a C++ native
application and operates in command-line. You don't have to 'root'
your device to use aria2. Because aria2 is a command-line program,
you need a terminal emulator. First install Android Terminal Emulator
from Android Market (or build it from source and install. See
https://github.com/jackpal/Android-Terminal-Emulator/).
1. Copy aria2c executable to ``/mnt/sdcard`` on your device.
2. Run Android Terminal Emulator.
3. ``mkdir /data/data/jackpal.androidterm/aria2``
4. ``cat /mnt/sdcard/aria2c > /data/data/jackpal.androidterm/aria2/aria2c``
5. ``chmod 744 /data/data/jackpal.androidterm/aria2/aria2c``
6. Add the following commands to the initial command of Android
Terminal Emulator::
export HOME=/data/data/jackpal.androidterm/aria2; cd $HOME
7. Exit Android Terminal Emulator.
8. Run Android Terminal Emulator again.
9. See whether aria2c actually works by invoking ``./aria2c -v``
How to use
----------
See `the online manual
<http://aria2.sourceforge.net/manual/en/html/>`_.
Notes
-----
aria2c executable was generated using android-ndk-r10d.
The following libraries were statically linked.
* openssl 1.0.2d
* expat 2.1.0
* c-ares 1.10.0
* libssh2 1.6.0
Since Android does not have ``/etc/resolv.conf``, c-ares (asynchronous
DNS resolver) is disabled by default. But name resolution is sometimes
a little bit slow, so I recommend to enable c-ares. You can enable it
using ``--async-dns`` and specify DNS servers using
``--async-dns-server`` option, like this::
--async-dns --async-dns-server=`getprop net.dns1`,`getprop net.dns2`
Additionally, the CA certificates shipped with Android don't locate in
the same place as those of normal Unix-like systems do, so this
workaround might be useful to securely download files via HTTPS::
cat /etc/security/cacerts/* | aria2c --ca-certificate=/proc/self/fd/0 $@
Because it is tedious to type these long parameters every time you use
aria2c, the following wrapper shell script would be handy::
#!/system/bin/sh
cat /etc/security/cacerts/* | \
/data/data/jackpal.androidterm/aria2c \
--ca-certificate=/proc/self/fd/0 \
--async-dns \
--async-dns-server=`getprop net.dns1`,`getprop net.dns2` \
"$@"
Please note that you need to add executable file mode bit to this
wrapper script too. (e.g., ``chmod 744 /PATH/TO/SCRIPT``)
Known Issues
------------
* Since Android does not have ``/dev/stdout``, ``-l-`` does not work.
``/proc/self/fd/0`` is a workaround for Android.
* Android Terminal Emulator sometimes stops updating console. It looks
like aria2c hangs, but aria2c continues to run.
This diff is collapsed.
aria2 Windows build
===================
aria2 Windows build is provided in 2 flavors: 32bit version and 64bit
version. The executable was compiled using mingw-w64 cross compiler on
Debian Linux.
* gcc-mingw-w64 4.9.2-21+15.4
* binutils-mingw-w64-i686 2.25-8+6.2
* binutils-mingw-w64-x86-64 2.25-8+6.2
The executable is statically linked, so no extra DLLs are
necessary. The linked libraries are:
* gmp 6.0.0
* expat 2.1.0
* sqlite 3.8.11.1
* zlib 1.2.8
* c-ares 1.10.0 with the dns.patch [1] applied
* libssh2 1.6.0
[1] http://c-ares.haxx.se/mail/c-ares-archive-2014-05/0008.shtml
This build has the following difference from the original release:
* 32bit version only: ``--disable-ipv6`` is enabled by default. (In
other words, IPv6 support is disabled by default).
Known Issues
------------
* When Ctrl-C is pressed, aria2 shows "Shutdown sequence
commencing... Press Ctrl-C again for emergency shutdown." But
mingw32 build cannot handle second Ctrl-C properly. The second
Ctrl-C just kills aria2 instantly without proper shutdown sequence
and you may lose data. So don't press Ctrl-C twice.
* --daemon option doesn't work.
* 32bit version only: When ``--disable-ipv6=false`` is given,
BitTorrent DHT may not work properly.
* 32bit version only: Most of the IPv6 functionality does not work
even if ``--disable-ipv6=false`` is given.
References
----------
* http://smithii.com/aria2
* http://kemovitra.blogspot.com/2009/12/download-aria2-163.html
......@@ -351,6 +351,7 @@ assumes the following libraries have been built for cross-compile:
* openssl
* expat
* zlib
* libssh2
When building the above libraries, make sure that disable shared
library and enable only static library. We are going to link those
......@@ -429,9 +430,11 @@ DHT
~~~
aria2 supports mainline compatible DHT. By default, the routing table
for IPv4 DHT is saved to ``$HOME/.aria2/dht.dat`` and the routing
table for IPv6 DHT is saved to ``$HOME/.aria2/dht6.dat``. aria2 uses
same port number to listen on for both IPv4 and IPv6 DHT.
for IPv4 DHT is saved to ``$XDG_CACHE_HOME/aria2/dht.dat`` and the
routing table for IPv6 DHT is saved to
``$XDG_CACHE_HOME/aria2/dht6.dat`` unless files exist at
``$HOME/.aria2/dht.dat`` or ``$HOME/.aria2/dht6.dat``. aria2 uses same
port number to listen on for both IPv4 and IPv6 DHT.
UDP tracker
~~~~~~~~~~~
......
This diff is collapsed.
#!/bin/sh -e
# aria2 - The high speed download utility
#
# Copyright (C) 2012 Tatsuhiro Tsujikawa
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the
# OpenSSL library under certain conditions as described in each
# individual source file, and distribute linked combinations
# including the two.
# You must obey the GNU General Public License in all respects
# for all of the code used other than OpenSSL. If you modify
# file(s) with this exception, you may extend this exception to your
# version of the file(s), but you are not obligated to do so. If you
# do not wish to do so, delete this exception statement from your
# version. If you delete this exception statement from all source
# files in the program, then also delete it here.
if [ -z "$ANDROID_HOME" ]; then
echo 'No $ANDROID_HOME specified.'
exit 1
fi
TOOLCHAIN=$ANDROID_HOME/toolchain
PATH=$TOOLCHAIN/bin:$PATH
# cd to the directory where this script exists.
cd $(dirname $0)
. ./script-helper
get_version
if [ -z "$VERSION" ]; then
echo "No version found"
exit 1
fi
DIST_DIR=aria2-$VERSION-android-build1
arm-linux-androideabi-strip src/aria2c
mkdir $DIST_DIR
cp AUTHORS COPYING ChangeLog LICENSE.OpenSSL NEWS README.html README.android \
src/aria2c $DIST_DIR
zip -9 -r $DIST_DIR.zip $DIST_DIR
rm -rf $DIST_DIR
#!/bin/sh -e
if [ -z "$ANDROID_HOME" ]; then
echo 'No $ANDROID_HOME specified.'
exit 1
fi
PREFIX=$ANDROID_HOME/usr/local
TOOLCHAIN=$ANDROID_HOME/toolchain
PATH=$TOOLCHAIN/bin:$PATH
./configure \
--host=arm-linux-androideabi \
--build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` \
--prefix=$PREFIX \
--disable-shared \
--enable-static
#!/bin/sh -e
if [ -z "$ANDROID_HOME" ]; then
echo 'No $ANDROID_HOME specified.'
exit 1
fi
PREFIX=$ANDROID_HOME/usr/local
TOOLCHAIN=$ANDROID_HOME/toolchain
PATH=$TOOLCHAIN/bin:$PATH
export CROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi-
./Configure --prefix=$PREFIX android
#!/bin/sh -e
if [ -z "$ANDROID_HOME" ]; then
echo 'No $ANDROID_HOME specified.'
exit 1
fi
PREFIX=$ANDROID_HOME/usr/local
TOOLCHAIN=$ANDROID_HOME/toolchain
PATH=$TOOLCHAIN/bin:$PATH
HOST=arm-linux-androideabi
CC=$HOST-gcc \
AR=$HOST-ar \
LD=$HOST-ld \
RANLIB=$HOST-ranlib \
STRIP=$HOST-strip \
./configure \
--prefix=$PREFIX \
--libdir=$PREFIX/lib \
--includedir=$PREFIX/include \
--static
#!/bin/sh
#exec 2>&1
BUILDDIR=/tmp/aria2buildtest
if [ ! -d "$BUILDDIR" ]; then
mkdir "$BUILDDIR" \
|| { echo "Failed to create directory $BUILDDIR" && exit -1; }
fi
echo -n "Starting build test "
echo `date`
# build CONFIGURE_OPTS BIN_SUFFIX DESC
build()
{
echo -n "new build() started at "
echo `date`
echo "*** configure opts=$1"
BIN_NAME="aria2c_$2"
if [ -f "$BUILDDIR/$BIN_NAME" ]; then
echo "$BIN_NAME exists, skipping"
return
fi
./configure $1 2>&1 | tee "$BUILDDIR/configure_$2.log"\
&& cp config.log "$BUILDDIR/config.log_$2" \
&& LANG=C make clean \
&& LANG=C make -j2 check 2>&1 |tee "$BUILDDIR/aria2c_$2.log" \
&& cp src/aria2c "$BUILDDIR/aria2c_$2"
if [ -f "test/aria2c.log" ]; then
cat "test/aria2c.log" >> "$BUILDDIR/aria2c_$2.log"
fi
}
clear()
{
for file in `ls $BUILDDIR`; do
rm -f "$BUILDDIR/$file";
done
}
case "$1" in
clear)
clear
;;
*)
# Library combinations
build "--without-libnettle --without-libgcrypt --without-openssl" \
"nodigest"
build "--without-libnettle --with-libgcrypt" "libgcrypt"
build "--without-gnutls" "openssl"
build "--without-gnutls --without-openssl" "nossl"
build "--without-libcares" "nocares"
build "--without-libxml2" "expat"
build "--without-libxml2 --without-libexpat" "noxml"
build "--without-libz" "nozlib"
build "--without-sqlite3" "nosqlite3"
build "--without-libssh2" "nolibssh2"
# Feature combinations
build "--disable-bittorrent" "nobt"
build "--disable-metalink" "noml"
build "--disable-bittorrent --disable-metalink" "nobt_noml"
build "--disable-epoll" "noepoll"
build "--disable-epoll --without-libcares" "noepoll_nocares"
build "--enable-libaria2" "libaria2"
;;
esac
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
scriptversion=2012-10-14.11; # UTC