diff --git a/.gitattributes b/.gitattributes index a6344aac8c09253b3b630fb776ae94478aa0275b..04ed6d5d3d0ef87d61cd3b7923843b65437c651a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text *tfevents* filter=lfs diff=lfs merge=lfs -text +bin/aria2c filter=lfs diff=lfs merge=lfs -text diff --git a/bin/aria2c b/bin/aria2c new file mode 100644 index 0000000000000000000000000000000000000000..fffdb542fd4503a5c6782009a5283ac6cd0f9b69 --- /dev/null +++ b/bin/aria2c @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ff1c2ec1b4be76ebf602969a4416b7b6e6ae30955ef9d2bfea579330421d55a +size 82219952 diff --git a/share/doc/aria2/README b/share/doc/aria2/README new file mode 100644 index 0000000000000000000000000000000000000000..5ccc0ea36b545a93108ee0fed380bcefc5ec921e --- /dev/null +++ b/share/doc/aria2/README @@ -0,0 +1 @@ +See README.rst diff --git a/share/doc/aria2/README.html b/share/doc/aria2/README.html new file mode 100644 index 0000000000000000000000000000000000000000..8689e0f2479721802eae454731522a01912a62e2 --- /dev/null +++ b/share/doc/aria2/README.html @@ -0,0 +1,904 @@ + + + +
+ + +This program comes with no warranty. +You must use this program at your own risk.
+aria2 is a utility for downloading files. The supported protocols are +HTTP(S), FTP, SFTP, BitTorrent, and Metalink. aria2 can download a +file from multiple sources/protocols and tries to utilize your maximum +download bandwidth. It supports downloading a file from +HTTP(S)/FTP/SFTP and BitTorrent at the same time, while the data +downloaded from HTTP(S)/FTP/SFTP is uploaded to the BitTorrent +swarm. Using Metalink's chunk checksums, aria2 automatically validates +chunks of data while downloading a file like BitTorrent.
+The project page is located at https://aria2.github.io/.
+See aria2 Online Manual (Russian translation, Portuguese +translation) to learn +how to use aria2.
+Here is a list of features:
+We use 3 numbers for aria2 version: MAJOR.MINOR.PATCH. We will ship +MINOR update on 15th of every month. We may skip a release if we have +no changes since the last release. The feature and documentation +freeze happens 10 days before the release day (5th day of the month) +for translation teams. We will raise an issue about the upcoming +release around that day.
+We may release PATCH releases between regular releases if we have +security issues.
+MAJOR version will stay at 1 for the time being.
+We maintain the source code at Github: +https://github.com/aria2/aria2
+To get the latest source code, run following command:
++$ git clone https://github.com/aria2/aria2.git ++
This will create aria2 directory in your current directory and source +files are stored there.
+| features | +dependency | +
|---|---|
| HTTPS | +OSX or GnuTLS or OpenSSL or Windows | +
| SFTP | +libssh2 | +
| BitTorrent | +None. Optional: libnettle+libgmp or libgcrypt +or OpenSSL (see note) | +
| Metalink | +libxml2 or Expat. | +
| Checksum | +None. Optional: OSX or libnettle or libgcrypt +or OpenSSL or Windows (see note) | +
| gzip, deflate in HTTP | +zlib | +
| Async DNS | +C-Ares | +
| Firefox3/Chromium cookie | +libsqlite3 | +
| XML-RPC | +libxml2 or Expat. | +
| JSON-RPC over WebSocket | +libnettle or libgcrypt or OpenSSL | +
Note
+libxml2 has precedence over Expat if both libraries are installed. +If you prefer Expat, run configure with --without-libxml2.
+Note
+On Apple OSX the OS-level SSL/TLS support will be preferred. Hence +neither GnuTLS nor OpenSSL are required on that platform. If you'd +like to disable this behavior, run configure with +--without-appletls.
+GnuTLS has precedence over OpenSSL if both libraries are installed. +If you prefer OpenSSL, run configure with --without-gnutls +--with-openssl.
+On Windows there is SSL implementation available that is based on +the native Windows SSL capabilities (Schannel) and it will be +preferred. Hence neither GnuTLS nor OpenSSL are required on that +platform. If you'd like to disable this behavior, run configure +with --without-wintls.
+Note
+On Apple OSX the OS-level checksum support will be preferred, +unless aria2 is configured with --without-appletls.
+libnettle has precedence over libgcrypt if both libraries are +installed. If you prefer libgcrypt, run configure with +--without-libnettle --with-libgcrypt. If OpenSSL is selected over +GnuTLS, neither libnettle nor libgcrypt will be used.
+If none of the optional dependencies are installed, an internal +implementation that only supports md5 and sha1 will be used.
+On Windows there is SSL implementation available that is based on +the native Windows capabilities and it will be preferred, unless +aria2 is configured with --without-wintls.
+A user can have one of the following configurations for SSL and crypto +libraries:
+You can disable BitTorrent and Metalink support by providing +--disable-bittorrent and --disable-metalink to the configure +script respectively.
+In order to enable async DNS support, you need c-ares.
+aria2 is primarily written in C++. Initially it was written based on +C++98/C++03 standard features. We are now migrating aria2 to C++11 +standard. The current source code requires C++11 aware compiler. For +well-known compilers, such as g++ and clang, the -std=c++11 or +-std=c++0x flag must be supported.
+In order to build aria2 from the source package, you need following +development packages (package name may vary depending on the +distribution you use):
+You can use libgcrypt-dev instead of nettle-dev and libgmp-dev:
+You can use libssl-dev instead of +libgnutls-dev, nettle-dev, libgmp-dev, libgpg-error-dev and libgcrypt-dev:
+You can use libexpat1-dev instead of libxml2-dev:
+On Fedora you need the following packages: gcc, gcc-c++, kernel-devel, +libgcrypt-devel, libxml2-devel, openssl-devel, gettext-devel, cppunit
+If you downloaded source code from git repository, you have to install +following packages to get autoconf macros:
+And run following command to generate configure script and other files +necessary to build the program:
++$ autoreconf -i ++
Also you need Sphinx to build man page.
+If you are building aria2 for Mac OS X, take a look at +the makerelease-osx.mk GNU Make makefile.
+The quickest way to build aria2 is first run configure script:
++$ ./configure ++
To build statically linked aria2, use ARIA2_STATIC=yes +command-line option:
++$ ./configure ARIA2_STATIC=yes ++
After configuration is done, run make to compile the program:
++$ make ++
See Cross-compiling Windows binary to create a Windows binary. +See Cross-compiling Android binary to create an Android binary.
+The configure script checks available libraries and enables as many +features as possible except for experimental features not enabled by +default.
+Since 1.1.0, aria2 checks the certificate of HTTPS servers by default. +If you build with OpenSSL or the recent version of GnuTLS which has +gnutls_certificate_set_x509_system_trust() function and the +library is properly configured to locate the system-wide CA +certificates store, aria2 will automatically load those certificates +at the startup. If it is not the case, I recommend to supply the path +to the CA bundle file. For example, in Debian the path to CA bundle +file is '/etc/ssl/certs/ca-certificates.crt' (in ca-certificates +package). This may vary depending on your distribution. You can give +it to configure script using --with-ca-bundle option:
++$ ./configure --with-ca-bundle='/etc/ssl/certs/ca-certificates.crt' +$ make ++
Without --with-ca-bundle option, you will encounter the error when +accessing HTTPS servers because the certificate cannot be verified +without CA bundle. In such case, you can specify the CA bundle file +using aria2's --ca-certificate option. If you don't have CA bundle +file installed, then the last resort is disable the certificate +validation using --check-certificate=false.
+Using the native OSX (AppleTLS) and/or Windows (WinTLS) implementation +will automatically use the system certificate store, so +--with-ca-bundle is not necessary and will be ignored when using +these implementations.
+By default, the 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.
+After a make the executable is located at src/aria2c.
+aria2 uses CppUnit for automated unit testing. To run the unit test:
++$ make check ++
In this section, we describe how to build a Windows binary using a +mingw-w64 (http://mingw-w64.org/doku.php) cross-compiler on Debian +Linux. The MinGW (http://www.mingw.org/) may not be able to build +aria2.
+The easiest way to build Windows binary is use Dockerfile.mingw. See +Dockerfile.mingw how to build binary. If you cannot use Dockerfile, +then continue to read following paragraphs.
+Basically, after compiling and installing depended libraries, you can +do cross-compile just passing appropriate --host option and +specifying CPPFLAGS, LDFLAGS and PKG_CONFIG_LIBDIR +variables to configure. For convenience and lowering our own +development cost, we provide easier way to configure the build +settings.
+mingw-config script is a configure script wrapper for mingw-w64. +We use it to create official Windows build. This script assumes +following libraries have been built for cross-compile:
+Some environment variables can be adjusted to change build settings:
+For example, to build 64bit binary do this:
++$ HOST=x86_64-w64-mingw32 ./mingw-config ++
If you want libaria2 dll with --enable-libaria2, then don't use +ARIA2_STATIC=yes and prepare the DLL version of external +libraries.
+In this section, we describe how to build Android binary using Android +NDK cross-compiler on Debian Linux.
+At the time of this writing, Android NDK r21e should compile aria2 +without errors.
+android-config script is a configure script wrapper for Android +build. We use it to create official Android build. This script +assumes the following libraries have been built for cross-compile:
+When building the above libraries, make sure that disable shared +library and enable only static library. We are going to link those +libraries statically.
+android-config assumes that $ANDROID_HOME and $NDK +environment variables are defined.
+We currently use Android NDK r21e. $NDK should point to the +directory to Anroid NDK. The build tools will be found under +$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/.
+All the dependent libraries must be installed under +$ANDROID_HOME/usr/local.
+After android-config, run make to compile sources.
+Sphinx is used to build the +documentation. aria2 man pages will be build when you run make if +they are not up-to-date. You can also build HTML version of aria2 man +page by make html. The HTML version manual is also available at +online (Russian +translation, Portuguese +translation).
+The file name of the downloaded file is determined as follows:
+Before download starts, a complete directory structure is created if +needed. By default, aria2 opens at most 100 files mentioned in +.torrent file, and directly writes to and reads from these files. +The number of files to open simultaneously can be controlled by +--bt-max-open-files option.
+aria2 supports mainline compatible DHT. By default, the routing table +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 support is enabled when IPv4 DHT is enabled. The port +number of UDP tracker is shared with DHT. Use --dht-listen-port +option to change the port number.
+The current implementation supports HTTP(S)/FTP/SFTP/BitTorrent. The +other P2P protocols are ignored. Both Metalink4 (RFC 5854) and +Metalink version 3.0 documents are supported.
+For checksum verification, md5, sha-1, sha-224, sha-256, sha-384 and +sha-512 are supported. If multiple hash algorithms are provided, aria2 +uses stronger one. If whole file checksum verification fails, aria2 +doesn't retry the download and just exits with non-zero return code.
+The supported user preferences are version, language, location, +protocol and os.
+If chunk checksums are provided in Metalink file, aria2 automatically +validates chunks of data during download. This behavior can be turned +off by a command-line option.
+If signature is included in a Metalink file, aria2 saves it as a file +after the completion of the download. The file name is download +file name + ".sig". If same file already exists, the signature file is +not saved.
+In Metalink4, multi-file torrent could appear in metalink:metaurl +element. Since aria2 cannot download 2 same torrents at the same +time, aria2 groups files in metalink:file element which has same +BitTorrent metaurl and downloads them from a single BitTorrent swarm. +This is basically multi-file torrent download with file selection, so +the adjacent files which is not in Metalink document but shares same +piece with selected file are also created.
+If relative URI is specified in metalink:url or metalink:metaurl +element, aria2 uses the URI of Metalink file as base URI to resolve +the relative URI. If relative URI is found in Metalink file which is +read from local disk, aria2 uses the value of --metalink-base-uri +option as base URI. If this option is not specified, the relative URI +will be ignored.
+The current implementation only uses rel=duplicate links only. aria2 +understands Digest header fields and check whether it matches the +digest value from other sources. If it differs, drop connection. +aria2 also uses this digest value to perform checksum verification +after download finished. aria2 recognizes geo value. To tell aria2 +which location you prefer, you can use --metalink-location option.
+netrc support is enabled by default for HTTP(S)/FTP/SFTP. To disable +netrc support, specify -n command-line option. Your .netrc file +should have correct permissions(600).
+The WebSocket server embedded in aria2 implements the specification +defined in RFC 6455. The supported protocol version is 13.
+The libaria2 is a C++ library which offers aria2 functionality to the +client code. Currently, libaria2 is not built by default. To enable +libaria2, use --enable-libaria2 configure option. By default, +only the shared library is built. To build static library, use +--enable-static configure option as well. See libaria2 +documentation to know how to use API.
+