From 3537a6bde7d1a35e36110be2dd7bffa2a195ce6d Mon Sep 17 00:00:00 2001 From: Heporis <51895154+Heporis@users.noreply.github.com> Date: Sat, 26 Jul 2025 09:58:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9Termux=E7=9A=84wheel=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E8=87=B3Release=20(#1371)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加Termux使用教程链接 由于PyPI不支持Termux的platform tag,改为发布至Release --- .github/workflows/Termux-publish.yml | 61 ++++++++++++++++++++++++++++ .github/workflows/ci.yml | 52 +----------------------- README.md | 6 +-- 3 files changed, 63 insertions(+), 56 deletions(-) create mode 100644 .github/workflows/Termux-publish.yml diff --git a/.github/workflows/Termux-publish.yml b/.github/workflows/Termux-publish.yml new file mode 100644 index 0000000..09fb59e --- /dev/null +++ b/.github/workflows/Termux-publish.yml @@ -0,0 +1,61 @@ +name: Build Termux Wheel to Release + +on: + release: + types: [published] + workflow_dispatch: + +jobs: + build: + permissions: + contents: write + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v3 + with: + node-version: '20' + - name: Build frontend + run: | + npm install + npm run build + - uses: actions/setup-python@v5 + with: + python-version: 3.x + - name: Set up Android NDK + uses: nttld/setup-ndk@v1 + with: + ndk-version: r26d + - name: Install dependencies and Android target + run: | + pip install maturin + rustup target add aarch64-linux-android + - name: Set up CPython interpreter for cross-compilation + run: | + BASE_URL="https://packages.termux.dev/apt/termux-main/pool/main/p/python" + FNAME=$(curl -s "$BASE_URL/" | grep -oE 'python_[0-9]+\.[0-9]+\.[0-9]+_aarch64\.deb' | { IFS= read -r line; echo "$line"; }) + wget -nv "$BASE_URL/$FNAME" + mkdir python + dpkg-deb -x $FNAME python + cp -a python/data/data/com.termux/files/usr/lib/libpython* $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/24 + sed -i 's/pyo3 = { version = "0.24.0", features = \[.*\] }/pyo3 = { version = "0.24.0" }/' crates/stream-gears/Cargo.toml + sed -i '/dependencies = \[/a\ "quickjs >= 1.19.4",' pyproject.toml + - name: Build wheel for aarch64 (Termux) + run: | + export NDK_BIN=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin + export CC_aarch64_linux_android=$NDK_BIN/aarch64-linux-android24-clang + export AR_aarch64_linux_android=$NDK_BIN/llvm-ar + export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=$NDK_BIN/aarch64-linux-android24-clang + export PYO3_CROSS_LIB_DIR=python/data/data/com.termux/files/usr/lib/ + maturin build \ + --release \ + --strip \ + --manylinux off \ + --target aarch64-linux-android \ + --out dist + - name: Upload wheel to release + uses: softprops/action-gh-release@v2 + with: + files: dist/*.whl + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 219497a..5d6e9f7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -196,56 +196,6 @@ jobs: name: wheels-macos-${{ matrix.platform.target }} path: dist - termux: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 - with: - node-version: '20' - - name: Build frontend - run: | - npm install - npm run build - - uses: actions/setup-python@v5 - with: - python-version: 3.x - - name: Set up Android NDK - uses: nttld/setup-ndk@v1 - with: - ndk-version: r26d - - name: Install dependencies and Android target - run: | - pip install maturin - rustup target add aarch64-linux-android - - name: Set up CPython interpreter for cross-compilation - run: | - BASE_URL="https://packages.termux.dev/apt/termux-main/pool/main/p/python" - FNAME=$(curl -s "$BASE_URL/" | grep -oE 'python_[0-9]+\.[0-9]+\.[0-9]+_aarch64\.deb' | { IFS= read -r line; echo "$line"; }) - wget -nv "$BASE_URL/$FNAME" - mkdir python - dpkg-deb -x $FNAME python - sed -i 's/pyo3 = { version = "0.24.0", features = \[.*\] }/pyo3 = { version = "0.24.0" }/' crates/stream-gears/Cargo.toml - cp -a python/data/data/com.termux/files/usr/lib/libpython* $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/24 - - name: Build wheel for aarch64 (Termux) - run: | - export NDK_BIN=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin - export CC_aarch64_linux_android=$NDK_BIN/aarch64-linux-android24-clang - export AR_aarch64_linux_android=$NDK_BIN/llvm-ar - export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=$NDK_BIN/aarch64-linux-android24-clang - export PYO3_CROSS_LIB_DIR=python/data/data/com.termux/files/usr/lib/ - maturin build \ - --release \ - --strip \ - --manylinux off \ - --target aarch64-linux-android \ - --out dist - - name: Upload wheels - uses: actions/upload-artifact@v4 - with: - name: wheels-termux-aarch64 - path: dist - sdist: runs-on: ubuntu-latest steps: @@ -272,7 +222,7 @@ jobs: name: Release runs-on: ubuntu-latest if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }} - needs: [linux, musllinux, windows, macos, termux, sdist] + needs: [linux, musllinux, windows, macos, sdist] permissions: # Use to sign the release artifacts id-token: write diff --git a/README.md b/README.md index fce7410..631aaca 100644 --- a/README.md +++ b/README.md @@ -48,11 +48,7 @@ 4. 访问 WebUI:`http://your-ip:19159` ### Termux -1. 仅为64位 Android 7.0+预编译wheel(本地编译见Wiki) -2. 仅支持最新版 Python:`pkg install libxml2 libxslt getconf python -y` -3. 安装:`pip3 install biliup` -4. 启动:`biliup start` -5. 访问 WebUI:`http://your-ip:19159` +- 详见[Wiki](https://github.com/biliup/biliup/wiki/Termux-%E4%B8%AD%E4%BD%BF%E7%94%A8-biliup) ---