From 0e141811daf96fdbb7424040174a8775f88f8f19 Mon Sep 17 00:00:00 2001 From: c6ForH66 <41188403+c6ForH66@users.noreply.github.com> Date: Fri, 16 Feb 2024 18:43:46 +0800 Subject: [PATCH 1/8] Update libraries on windows --- Dockerfile.mingw | 30 ++++++++++++++---------------- mingw-config | 2 +- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/Dockerfile.mingw b/Dockerfile.mingw index 5f2d0e64..1c09b775 100644 --- a/Dockerfile.mingw +++ b/Dockerfile.mingw @@ -1,7 +1,8 @@ # Dockerfile to build aria2 Windows binary using ubuntu mingw-w64 # cross compiler chain. # -# $ sudo docker build -t aria2-mingw - < Dockerfile.mingw +# $ sudo docker build -t aria2-mingw -f Dockerfile.mingw . +# Be aware that there's a dot at the end of the command ↑ # # After successful build, windows binary is located at # /aria2/src/aria2c.exe. You can copy the binary using following @@ -25,15 +26,15 @@ RUN apt-get update && \ apt-get install -y --no-install-recommends \ make binutils autoconf automake autotools-dev libtool \ patch ca-certificates \ - pkg-config git curl dpkg-dev gcc-mingw-w64 g++-mingw-w64 \ + pkg-config git curl dpkg-dev mingw-w64 \ autopoint libcppunit-dev libxml2-dev libgcrypt20-dev lzip \ python3-docutils RUN curl -L -O https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz && \ - curl -L -O https://github.com/libexpat/libexpat/releases/download/R_2_5_0/expat-2.5.0.tar.bz2 && \ - curl -L -O https://www.sqlite.org/2023/sqlite-autoconf-3430100.tar.gz && \ + curl -L -O https://github.com/libexpat/libexpat/releases/download/R_2_6_0/expat-2.6.0.tar.bz2 && \ + curl -L -O https://www.sqlite.org/2024/sqlite-autoconf-3450100.tar.gz && \ curl -L -O https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz && \ - curl -L -O https://c-ares.org/download/c-ares-1.19.1.tar.gz && \ + curl -L -O https://c-ares.org/download/c-ares-1.26.0.tar.gz && \ curl -L -O https://libssh2.org/download/libssh2-1.11.0.tar.bz2 RUN tar xf gmp-6.3.0.tar.xz && \ @@ -48,8 +49,8 @@ RUN tar xf gmp-6.3.0.tar.xz && \ CFLAGS="-mtune=generic -O2 -g0" && \ make -j$(nproc) install -RUN tar xf expat-2.5.0.tar.bz2 && \ - cd expat-2.5.0 && \ +RUN tar xf expat-2.6.0.tar.bz2 && \ + cd expat-2.6.0 && \ ./configure \ --disable-shared \ --enable-static \ @@ -58,8 +59,8 @@ RUN tar xf expat-2.5.0.tar.bz2 && \ --build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` && \ make -j$(nproc) install -RUN tar xf sqlite-autoconf-3430100.tar.gz && \ - cd sqlite-autoconf-3430100 && \ +RUN tar xf sqlite-autoconf-3450100.tar.gz && \ + cd sqlite-autoconf-3450100 && \ ./configure \ --disable-shared \ --enable-static \ @@ -82,8 +83,8 @@ RUN tar xf zlib-1.3.1.tar.gz && \ --static && \ make -j$(nproc) install -RUN tar xf c-ares-1.19.1.tar.gz && \ - cd c-ares-1.19.1 && \ +RUN tar xf c-ares-1.26.0.tar.gz && \ + cd c-ares-1.26.0 && \ ./configure \ --disable-shared \ --enable-static \ @@ -105,10 +106,7 @@ RUN tar xf libssh2-1.11.0.tar.bz2 && \ LIBS="-lws2_32" && \ make -j$(nproc) install -ARG ARIA2_VERSION=master -ARG ARIA2_REF=refs/heads/master +COPY . /aria2 -ADD https://api.github.com/repos/aria2/aria2/git/$ARIA2_REF version.json -RUN git clone -b $ARIA2_VERSION --depth 1 https://github.com/aria2/aria2 && \ - cd aria2 && autoreconf -i && ./mingw-config && make -j$(nproc) && \ +RUN cd aria2 && autoreconf -i && ./mingw-config && make -j$(nproc) && \ $HOST-strip src/aria2c.exe diff --git a/mingw-config b/mingw-config index c903c0b6..1f99a6bf 100755 --- a/mingw-config +++ b/mingw-config @@ -76,7 +76,7 @@ test -z "$PREFIX" && PREFIX=/usr/local/$HOST --without-libnettle \ --with-cppunit-prefix=$PREFIX \ ARIA2_STATIC=yes \ - CPPFLAGS="-I$PREFIX/include" \ + CPPFLAGS="-I$PREFIX/include -DCARES_STATICLIB" \ LDFLAGS="-L$PREFIX/lib" \ PKG_CONFIG="/usr/bin/pkg-config" \ PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig" From 571b0a213aed9e0deb9d0943c1aaa74f1783cddf Mon Sep 17 00:00:00 2001 From: c6ForH66 <41188403+c6ForH66@users.noreply.github.com> Date: Fri, 16 Feb 2024 20:05:05 +0800 Subject: [PATCH 2/8] Update build.yml --- .github/workflows/build.yml | 24 +++++++++++++++++++++++- Dockerfile.mingw | 2 +- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 51703768..2b4380ee 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,6 +3,28 @@ name: build on: [push, pull_request] jobs: + build-windows: + strategy: + matrix: + host: [i686-w64-mingw32, x86_64-w64-mingw32] + runs-on: ubuntu-22.04 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Build aria2 + run: | + docker build --build-arg HOST=${{ matrix.host }} -t aria2-mingw -f ./Dockerfile.mingw . + docker run --rm -v .:/out aria2-mingw cp /aria2/src/aria2c.exe /out + + - name: Upload build artifact + uses: actions/upload-artifact@v4.3.1 + with: + name: aria2-${{ matrix.host }} + path: ./aria2c.exe + + build: strategy: matrix: @@ -19,7 +41,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4.1.1 - name: Linux setup if: runner.os == 'Linux' run: | diff --git a/Dockerfile.mingw b/Dockerfile.mingw index 1c09b775..86e47414 100644 --- a/Dockerfile.mingw +++ b/Dockerfile.mingw @@ -30,7 +30,7 @@ RUN apt-get update && \ autopoint libcppunit-dev libxml2-dev libgcrypt20-dev lzip \ python3-docutils -RUN curl -L -O https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz && \ +RUN curl -L -O https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.xz && \ curl -L -O https://github.com/libexpat/libexpat/releases/download/R_2_6_0/expat-2.6.0.tar.bz2 && \ curl -L -O https://www.sqlite.org/2024/sqlite-autoconf-3450100.tar.gz && \ curl -L -O https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz && \ From e01f5e81e65116fba9fc098f8eeaf4890d52378f Mon Sep 17 00:00:00 2001 From: c6ForH66 <41188403+c6ForH66@users.noreply.github.com> Date: Sun, 16 Jun 2024 09:19:57 +0800 Subject: [PATCH 3/8] Update Dockerfile.mingw --- Dockerfile.mingw | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile.mingw b/Dockerfile.mingw index 2ec22bdf..9337b870 100644 --- a/Dockerfile.mingw +++ b/Dockerfile.mingw @@ -83,8 +83,8 @@ RUN tar xf zlib-1.3.1.tar.gz && \ --static && \ make -j$(nproc) install -RUN tar xf c-ares-1.26.0.tar.gz && \ - cd c-ares-1.26.0 && \ +RUN tar xf c-ares-1.30.0.tar.gz && \ + cd c-ares-1.30.0 && \ ./configure \ --disable-shared \ --enable-static \ From 46115f39efb795648474481e7af1b3baad780a5e Mon Sep 17 00:00:00 2001 From: c6ForH66 <41188403+c6ForH66@users.noreply.github.com> Date: Wed, 31 Jul 2024 20:29:58 +0800 Subject: [PATCH 4/8] Remove stupid limits --- src/OptionHandlerFactory.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/OptionHandlerFactory.cc b/src/OptionHandlerFactory.cc index 000426b6..eb474372 100644 --- a/src/OptionHandlerFactory.cc +++ b/src/OptionHandlerFactory.cc @@ -438,7 +438,7 @@ std::vector OptionHandlerFactory::createOptionHandlers() { OptionHandler* op(new NumberOptionHandler(PREF_MAX_CONNECTION_PER_SERVER, TEXT_MAX_CONNECTION_PER_SERVER, - "1", 1, 16, 'x')); + "16", 1, -1, 'x')); op->addTag(TAG_BASIC); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); @@ -499,7 +499,7 @@ std::vector OptionHandlerFactory::createOptionHandlers() } { OptionHandler* op(new UnitNumberOptionHandler( - PREF_MIN_SPLIT_SIZE, TEXT_MIN_SPLIT_SIZE, "20M", 1_m, 1_g, 'k')); + PREF_MIN_SPLIT_SIZE, TEXT_MIN_SPLIT_SIZE, "1M", 1_k, 1_g, 'k')); op->addTag(TAG_BASIC); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); From b37d9de9d94e7cd19544f072d7d73ab1120b1e1c Mon Sep 17 00:00:00 2001 From: c6ForH66 <41188403+c6ForH66@users.noreply.github.com> Date: Sat, 3 Aug 2024 13:43:34 +0800 Subject: [PATCH 5/8] Update build.yml --- .github/workflows/build.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3f538aad..0e28d268 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -122,3 +122,9 @@ jobs: - name: Build aria2 run: | make -j"$(nproc 2> /dev/null || sysctl -n hw.ncpu)" check + + - name: Upload build artifact + uses: actions/upload-artifact@v4.3.1 + with: + name: aria2-${{ matrix.host }} + path: ./aria2c From 2dcd3fd36d953167751425bbe00ddfd7ac0567ce Mon Sep 17 00:00:00 2001 From: c6ForH66 <41188403+c6ForH66@users.noreply.github.com> Date: Sat, 3 Aug 2024 13:59:20 +0800 Subject: [PATCH 6/8] Update build.yml --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0e28d268..89f2863f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -126,5 +126,5 @@ jobs: - name: Upload build artifact uses: actions/upload-artifact@v4.3.1 with: - name: aria2-${{ matrix.host }} - path: ./aria2c + name: aria2-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.crypto }}-${{ matrix.bittorrent }} + path: ./src/aria2c From d80fbd264e527c499c66606f33b5b87d55f2a683 Mon Sep 17 00:00:00 2001 From: c6ForH66 <41188403+c6ForH66@users.noreply.github.com> Date: Sat, 3 Aug 2024 15:01:11 +0800 Subject: [PATCH 7/8] Update build.yml --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 89f2863f..39dafd9d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -122,6 +122,7 @@ jobs: - name: Build aria2 run: | make -j"$(nproc 2> /dev/null || sysctl -n hw.ncpu)" check + strip ./src/aria2c - name: Upload build artifact uses: actions/upload-artifact@v4.3.1 From 4cfc70cacd0804a144ce444c7bfde48a5a8762cf Mon Sep 17 00:00:00 2001 From: c6ForH66 <41188403+c6ForH66@users.noreply.github.com> Date: Sun, 29 Jun 2025 16:58:13 +0800 Subject: [PATCH 8/8] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 39dafd9d..61ff8a1f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,6 +1,6 @@ name: build -on: [push, pull_request] +on: [push, pull_request, workflow_dispatch] jobs: build-windows: