From 9f350f3b1cc53690ae5cb0e06632d02ed18509e9 Mon Sep 17 00:00:00 2001 From: bashonly Date: Thu, 14 Aug 2025 23:30:46 -0500 Subject: [PATCH] Remove `linux_armv7l_exe`, add `linux_armv7l_dir` Authored by: bashonly --- .github/workflows/build.yml | 8 +++++--- .github/workflows/release-master.yml | 1 - .github/workflows/release-nightly.yml | 1 - .github/workflows/release.yml | 11 +++++++++-- README.md | 2 +- bundle/docker/compose.yml | 3 ++- bundle/docker/linux/verify.sh | 26 +++++++++++++++++--------- yt_dlp/update.py | 13 ------------- 8 files changed, 34 insertions(+), 31 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 425d8b793a..2a33683590 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -60,7 +60,7 @@ on: default: true type: boolean linux_armv7l: - description: yt-dlp_linux_armv7l + description: yt-dlp_linux_armv7l.zip default: true type: boolean musllinux: @@ -238,7 +238,6 @@ jobs: cd bundle/docker docker compose up --build --exit-code-from "${SERVICE}" "${SERVICE}" docker compose down - sudo chown "${USER}:docker" ~/build/${EXE_NAME} - name: Verify --update-to in container if: vars.UPDATE_TO_VERIFICATION @@ -258,7 +257,7 @@ jobs: with: name: build-bin-${{ github.job }} path: | - ~/build/yt-dlp_linux_armv7l + ~/build/yt-dlp_linux_armv7l.zip compression-level: 0 - name: Cleanup cache @@ -569,6 +568,7 @@ jobs: lock 2024.10.22 zip Python 3\.8 lock 2024.10.22 win(?:_x86)?_exe Python 3\.[78].+ Windows-(?:7-|2008ServerR2) lock 2025.08.11 darwin_legacy_exe .+ + lock 2025.09.01 linux_armv7l_exe .+ lockV2 yt-dlp/yt-dlp 2022.08.18.36 .+ Python 3\.6 lockV2 yt-dlp/yt-dlp 2023.11.16 (?!win_x86_exe).+ Python 3\.7 lockV2 yt-dlp/yt-dlp 2023.11.16 win_x86_exe .+ Windows-(?:Vista|2008Server) @@ -577,6 +577,7 @@ jobs: lockV2 yt-dlp/yt-dlp 2024.10.22 zip Python 3\.8 lockV2 yt-dlp/yt-dlp 2024.10.22 win(?:_x86)?_exe Python 3\.[78].+ Windows-(?:7-|2008ServerR2) lockV2 yt-dlp/yt-dlp 2025.08.11 darwin_legacy_exe .+ + lockV2 yt-dlp/yt-dlp 2025.09.01 linux_armv7l_exe .+ lockV2 yt-dlp/yt-dlp-nightly-builds 2023.11.15.232826 (?!win_x86_exe).+ Python 3\.7 lockV2 yt-dlp/yt-dlp-nightly-builds 2023.11.15.232826 win_x86_exe .+ Windows-(?:Vista|2008Server) lockV2 yt-dlp/yt-dlp-nightly-builds 2024.10.22.051025 py2exe .+ @@ -584,6 +585,7 @@ jobs: lockV2 yt-dlp/yt-dlp-nightly-builds 2024.10.22.051025 zip Python 3\.8 lockV2 yt-dlp/yt-dlp-nightly-builds 2024.10.22.051025 win(?:_x86)?_exe Python 3\.[78].+ Windows-(?:7-|2008ServerR2) lockV2 yt-dlp/yt-dlp-nightly-builds 2025.08.12.233030 darwin_legacy_exe .+ + lockV2 yt-dlp/yt-dlp-nightly-builds 2025.09.01.000000 linux_armv7l_exe .+ lockV2 yt-dlp/yt-dlp-master-builds 2023.11.15.232812 (?!win_x86_exe).+ Python 3\.7 lockV2 yt-dlp/yt-dlp-master-builds 2023.11.15.232812 win_x86_exe .+ Windows-(?:Vista|2008Server) lockV2 yt-dlp/yt-dlp-master-builds 2024.10.22.045052 py2exe .+ diff --git a/.github/workflows/release-master.yml b/.github/workflows/release-master.yml index 78445e417e..132fc4a928 100644 --- a/.github/workflows/release-master.yml +++ b/.github/workflows/release-master.yml @@ -24,7 +24,6 @@ jobs: source: master permissions: contents: write - packages: write # For package cache actions: write # For cleaning up cache id-token: write # mandatory for trusted publishing secrets: inherit diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml index 8f72844058..d35e4ef077 100644 --- a/.github/workflows/release-nightly.yml +++ b/.github/workflows/release-nightly.yml @@ -37,7 +37,6 @@ jobs: source: nightly permissions: contents: write - packages: write # For package cache actions: write # For cleaning up cache id-token: write # mandatory for trusted publishing secrets: inherit diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a3686c4470..662f641dce 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,6 +14,10 @@ on: required: false default: '' type: string + linux_armv7l: + required: false + default: false + type: boolean prerelease: required: false default: true @@ -43,6 +47,10 @@ on: required: false default: '' type: string + linux_armv7l: + description: Include linux_armv7l + default: true + type: boolean prerelease: description: Pre-release default: false @@ -226,10 +234,9 @@ jobs: version: ${{ needs.prepare.outputs.version }} channel: ${{ needs.prepare.outputs.channel }} origin: ${{ needs.prepare.outputs.target_repo }} - linux_armv7l: ${{ inputs.source != 'master' }} # Skip for 'master' channel (push) releases + linux_armv7l: ${{ inputs.linux_armv7l }} permissions: contents: read - packages: write # For package cache actions: write # For cleaning up cache secrets: GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} diff --git a/README.md b/README.md index 7e250ee23e..6b3831e87e 100644 --- a/README.md +++ b/README.md @@ -110,13 +110,13 @@ File|Description [yt-dlp_linux.zip](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux.zip)|Unpackaged Linux (glibc 2.17+) x86_64 executable (no auto-update) [yt-dlp_linux_aarch64](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux_aarch64)|Linux (glibc 2.17+) standalone aarch64 binary [yt-dlp_linux_aarch64.zip](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux_aarch64.zip)|Unpackaged Linux (glibc 2.17+) aarch64 executable (no auto-update) -[yt-dlp_linux_armv7l](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux_armv7l)|Linux (glibc 2.31+) standalone armv7l binary [yt-dlp_musllinux](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_musllinux)|Linux (musl 1.2+) standalone x86_64 binary [yt-dlp_musllinux.zip](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_musllinux.zip)|Unpackaged Linux (musl 1.2+) x86_64 executable (no auto-update) [yt-dlp_musllinux_aarch64](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_musllinux_aarch64)|Linux (musl 1.2+) standalone aarch64 binary [yt-dlp_musllinux_aarch64.zip](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_musllinux_aarch64.zip)|Unpackaged Linux (musl 1.2+) aarch64 executable (no auto-update) [yt-dlp_win.zip](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_win.zip)|Unpackaged Windows (Win8+) executable (no auto-update) [yt-dlp_macos.zip](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_macos.zip)|Unpackaged MacOS (10.15+) executable (no auto-update) +[yt-dlp_linux_armv7l.zip](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux_armv7l.zip)|Unpackaged Linux (glibc 2.31+) armv7l executable (no auto-update) #### Misc diff --git a/bundle/docker/compose.yml b/bundle/docker/compose.yml index 438e751ceb..b2db7e1895 100644 --- a/bundle/docker/compose.yml +++ b/bundle/docker/compose.yml @@ -71,7 +71,7 @@ services: CHANNEL: ${CHANNEL} ORIGIN: ${ORIGIN} VERSION: ${VERSION} - SKIP_ONEDIR_BUILD: "1" + SKIP_ONEFILE_BUILD: "1" volumes: - ~/build:/build - ../..:/yt-dlp @@ -87,6 +87,7 @@ services: IMAGE: arm32v7/debian:bullseye environment: EXE_NAME: ${EXE_NAME} + TEST_ONEDIR_BUILD: "1" volumes: - ~/build:/build diff --git a/bundle/docker/linux/verify.sh b/bundle/docker/linux/verify.sh index 1cb051ecf0..a76894de19 100755 --- a/bundle/docker/linux/verify.sh +++ b/bundle/docker/linux/verify.sh @@ -1,23 +1,31 @@ #!/bin/sh set -eu -chmod +x /build/${EXE_NAME} +if [ -n "${TEST_ONEDIR_BUILD:-}" ]; then + echo "Extracting zip to verify onedir build" + python3 -m zipfile -e "/build/${EXE_NAME}.zip" ./ +else + echo "Verifying onefile build" + cp "/build/${EXENAME}" ./ +fi + +chmod +x "./${EXE_NAME}" if [ -z "${EXCLUDE_CURL_CFFI:-}" ]; then - /build/${EXE_NAME} -v --print-traffic --impersonate chrome "https://tls.browserleaks.com/json" -o ./resp.json + "./${EXE_NAME}" -v --print-traffic --impersonate chrome "https://tls.browserleaks.com/json" -o ./resp.json cat ./resp.json fi -if [ -n "${SKIP_UPDATE_TO:-}" ]; then - /build/${EXE_NAME} -v || true - /build/${EXE_NAME} --version +if [ -n "${SKIP_UPDATE_TO:-}" ] || [ -n "${TEST_ONEDIR_BUILD:-}" ]; then + "./${EXE_NAME}" -v || true + "./${EXE_NAME}" --version exit 0 fi -cp /build/${EXE_NAME} ./${EXE_NAME}_downgraded -version="$(/build/${EXE_NAME} --version)" -./${EXE_NAME}_downgraded -v --update-to yt-dlp/yt-dlp@2023.03.04 -downgraded_version="$(./${EXE_NAME}_downgraded --version)" +cp "./${EXE_NAME}" "./${EXE_NAME}_downgraded" +version="$("./${EXE_NAME}" --version)" +"./${EXE_NAME}_downgraded" -v --update-to yt-dlp/yt-dlp@2023.03.04 +downgraded_version="$("./${EXE_NAME}_downgraded" --version)" if [ "${version}" = "${downgraded_version}" ]; then exit 1 fi diff --git a/yt_dlp/update.py b/yt_dlp/update.py index 8b30b0dbcd..35c06f8f59 100644 --- a/yt_dlp/update.py +++ b/yt_dlp/update.py @@ -126,7 +126,6 @@ _FILE_SUFFIXES = { 'darwin_exe': '_macos', 'linux_exe': '_linux', 'linux_aarch64_exe': '_linux_aarch64', - 'linux_armv7l_exe': '_linux_armv7l', 'musllinux_exe': '_musllinux', 'musllinux_aarch64_exe': '_musllinux_aarch64', } @@ -156,18 +155,6 @@ def _get_binary_name(): def _get_system_deprecation(): MIN_SUPPORTED, MIN_RECOMMENDED = (3, 9), (3, 10) - EXE_MSG_TMPL = ('Support for {} has been deprecated. ' - 'See https://github.com/yt-dlp/yt-dlp/{} for details.\n{}') - STOP_MSG = 'You may stop receiving updates on this version at any time!' - variant = detect_variant() - - # TODO: update message and remove after making one final release? - # Temporary until linux_armv7l executable builds are discontinued - if variant == 'linux_armv7l_exe': - return EXE_MSG_TMPL.format( - f'{variant} (the PyInstaller-bundled executable for the Linux armv7l platform)', - 'issues/13976', STOP_MSG) - if sys.version_info > MIN_RECOMMENDED: return None