Skip to content

aria2 static build, support cross compile

Notifications You must be signed in to change notification settings

rzhy1/aria2-static-build

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

aria2-static-build

Build and Release

aria2 static build using musl and support many platforms.

Download

You can download from latest release build (Build from aria2 latest release version).

Instructions

  • aria2c.exe is generated by build.sh, and aria2c1.exe by build1.sh.The main difference is their dependencies: aria2c.exe uses zlib and libexpat with the latest release tarballs, while aria2c1.exe uses zlib-ng and libxml2 with the latest source code, and the dependencies used to compile aria2c1.exe are automatically fetched to the latest versions.

  • Both aria2c.exe and aria2c1.exe are enhanced versions. "Piece-length" can be set to 1K, and "max-connection-per-server" can be set to 1024.

  • The optimal Aria2 configuration can be found at: https://raw.githubusercontent.com/P3TERX/aria2.conf/master/aria2.conf

https certificates NOTE (Linux Only)

SSL certificates location may vary from different distributions. E.g: Ubuntu uses /etc/ssl/certs/ca-certificates.crt, but CentOS uses /etc/pki/tls/certs/ca-bundle.crt.

It's impossible to detect certificates location in all distributions. See issue: openssl/openssl#7481. But luckily most distributions may contains a symbol link /etc/ssl/cert.pem which point to the actual file path.

So I set compile options --openssldir=/etc/ssl/ for openssl/libressl. Which works for most distributions.

If your environment contains file /etc/ssl/openssl.cnf or /etc/ssl/cert.pem, you were luckly and you can use my build out-of-box.

But if your environment does not contain any of the files, you have to do one of the following settings to make https request could work.

  • add --ca-certificate=/path/to/your/certificate to aria2c or set ca-certificate=/path/to/your/certificate in ~/.aria2/aria2.conf. E.g: ./aria2c --ca-certificate=/etc/pki/tls/certs/ca-bundle.crt https://github.com/
  • Or add SSL_CERT_FILE=/path/to/your/certificate environment variable before you run aria2c. E.g: export SSL_CERT_FILE=/etc/pki/tls/certs/ca-bundle.crt; ./aria2c https://github.com/ or SSL_CERT_FILE=/etc/pki/tls/certs/ca-bundle.crt ./aria2c https://github.com/

Reference for different distribution certificates locations: https://gitlab.com/probono/platformissues/blob/master/README.md#certificates

Build locally yourself

Requirements:

  • docker
docker run --rm -v "%cd%:/app" rzhy/ubuntu1:x86_64-w64-mingw32 /bin/bash -c "cd /app && ./build.sh"

All avaliable CROSS_HOST can be found in Tags page.

NOTE: Currently I only tested these tags:

  • x86_64-w64-mingw32

If you want to build for other platform, you may have to modify build.sh to suitable for your platform.

Cached build dependencies (downloads/), build_info.md and aria2c will be found in current directory.

You can set more optional environment variables in docker command like:

docker run --rm -e USE_ZLIB_NG=1 -e USE_LIBRESSL=1 -e USE_CHINA_MIRROR=0 -v "%cd%:/app" rzhy/ubuntu:x86_64-w64-mingw32 /bin/bash -c "cd /app && ./build.sh"

Optional environment variables:

  • ARIA2_VER: build specific version of aria2, e.g: 1.37.0. Default: master.
  • USE_CHINA_MIRROR: set to 1 will use China mirrors, if you were located in China, please set to 1. Default: 0.
  • USE_ZLIB_NG: use zlib-ng instead of zlib. Default: 1
  • USE_LIBRESSL: use LibreSSL instead of OpenSSL. Default: 0. NOTE, if CROSS_HOST=x86_64-w64-mingw32 will not use openssl or libressl because aria2 and all dependencies will use WinTLS instead.

About

aria2 static build, support cross compile

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 100.0%