mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	[build] Add Linux standalone builds
This commit is contained in:
		
							
								
								
									
										39
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										39
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							| @@ -70,14 +70,16 @@ jobs: | |||||||
|  |  | ||||||
|   build_unix: |   build_unix: | ||||||
|     needs: create_release |     needs: create_release | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-18.04  # Standalone executable should be built on minimum supported OS | ||||||
|     outputs: |     outputs: | ||||||
|       sha256_bin: ${{ steps.get_sha.outputs.sha256_bin }} |       sha256_bin: ${{ steps.get_sha.outputs.sha256_bin }} | ||||||
|       sha512_bin: ${{ steps.get_sha.outputs.sha512_bin }} |       sha512_bin: ${{ steps.get_sha.outputs.sha512_bin }} | ||||||
|       sha256_tar: ${{ steps.get_sha.outputs.sha256_tar }} |       sha256_tar: ${{ steps.get_sha.outputs.sha256_tar }} | ||||||
|       sha512_tar: ${{ steps.get_sha.outputs.sha512_tar }} |       sha512_tar: ${{ steps.get_sha.outputs.sha512_tar }} | ||||||
|       sha256_unix_zip: ${{ steps.get_sha.outputs.sha256_unix_zip }} |       sha256_linux: ${{ steps.get_sha.outputs.sha256_linux }} | ||||||
|       sha512_unix_zip: ${{ steps.get_sha.outputs.sha512_unix_zip }} |       sha512_linux: ${{ steps.get_sha.outputs.sha512_linux }} | ||||||
|  |       sha256_linux_zip: ${{ steps.get_sha.outputs.sha256_linux_zip }} | ||||||
|  |       sha512_linux_zip: ${{ steps.get_sha.outputs.sha512_linux_zip }} | ||||||
|  |  | ||||||
|     steps: |     steps: | ||||||
|     - uses: actions/checkout@v2 |     - uses: actions/checkout@v2 | ||||||
| @@ -94,9 +96,12 @@ jobs: | |||||||
|       run: | |       run: | | ||||||
|           python devscripts/update-version.py ${{ needs.create_release.outputs.version_suffix }} |           python devscripts/update-version.py ${{ needs.create_release.outputs.version_suffix }} | ||||||
|           python devscripts/make_lazy_extractors.py |           python devscripts/make_lazy_extractors.py | ||||||
|     - name: Build UNIX executables |     - name: Build Unix executables | ||||||
|       run: | |       run: | | ||||||
|           make all tar |           make all tar | ||||||
|  |           python pyinst.py --onedir | ||||||
|  |           (cd ./dist/yt-dlp_linux && zip -r ../yt-dlp_linux.zip .) | ||||||
|  |           python pyinst.py | ||||||
|     - name: Get SHA2-SUMS |     - name: Get SHA2-SUMS | ||||||
|       id: get_sha |       id: get_sha | ||||||
|       run: | |       run: | | ||||||
| @@ -104,6 +109,10 @@ jobs: | |||||||
|           echo "::set-output name=sha512_bin::$(sha512sum yt-dlp | awk '{print $1}')" |           echo "::set-output name=sha512_bin::$(sha512sum yt-dlp | awk '{print $1}')" | ||||||
|           echo "::set-output name=sha256_tar::$(sha256sum yt-dlp.tar.gz | awk '{print $1}')" |           echo "::set-output name=sha256_tar::$(sha256sum yt-dlp.tar.gz | awk '{print $1}')" | ||||||
|           echo "::set-output name=sha512_tar::$(sha512sum yt-dlp.tar.gz | awk '{print $1}')" |           echo "::set-output name=sha512_tar::$(sha512sum yt-dlp.tar.gz | awk '{print $1}')" | ||||||
|  |           echo "::set-output name=sha256_linux::$(sha256sum dist/yt-dlp_linux | awk '{print $1}')" | ||||||
|  |           echo "::set-output name=sha512_linux::$(sha512sum dist/yt-dlp_linux | awk '{print $1}')" | ||||||
|  |           echo "::set-output name=sha256_linux_zip::$(sha256sum dist/yt-dlp_linux.zip | awk '{print $1}')" | ||||||
|  |           echo "::set-output name=sha512_linux_zip::$(sha512sum dist/yt-dlp_linux.zip | awk '{print $1}')" | ||||||
|  |  | ||||||
|     - name: Upload zip binary |     - name: Upload zip binary | ||||||
|       uses: actions/upload-release-asset@v1 |       uses: actions/upload-release-asset@v1 | ||||||
| @@ -123,6 +132,24 @@ jobs: | |||||||
|         asset_path: ./yt-dlp.tar.gz |         asset_path: ./yt-dlp.tar.gz | ||||||
|         asset_name: yt-dlp.tar.gz |         asset_name: yt-dlp.tar.gz | ||||||
|         asset_content_type: application/gzip |         asset_content_type: application/gzip | ||||||
|  |     - name: Upload standalone binary | ||||||
|  |       uses: actions/upload-release-asset@v1 | ||||||
|  |       env: | ||||||
|  |         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||||
|  |       with: | ||||||
|  |         upload_url: ${{ needs.create_release.outputs.upload_url }} | ||||||
|  |         asset_path: ./dist/yt-dlp_linux | ||||||
|  |         asset_name: yt-dlp_linux | ||||||
|  |         asset_content_type: application/octet-stream | ||||||
|  |     - name: Upload onedir binary | ||||||
|  |       uses: actions/upload-release-asset@v1 | ||||||
|  |       env: | ||||||
|  |         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||||
|  |       with: | ||||||
|  |         upload_url: ${{ needs.create_release.outputs.upload_url }} | ||||||
|  |         asset_path: ./dist/yt-dlp_linux.zip | ||||||
|  |         asset_name: yt-dlp_linux.zip | ||||||
|  |         asset_content_type: application/zip | ||||||
|  |  | ||||||
|     - name: Build and publish on PyPi |     - name: Build and publish on PyPi | ||||||
|       env: |       env: | ||||||
| @@ -330,6 +357,8 @@ jobs: | |||||||
|       run: | |       run: | | ||||||
|         echo "${{ needs.build_unix.outputs.sha256_bin }}  yt-dlp" >> SHA2-256SUMS |         echo "${{ needs.build_unix.outputs.sha256_bin }}  yt-dlp" >> SHA2-256SUMS | ||||||
|         echo "${{ needs.build_unix.outputs.sha256_tar }}  yt-dlp.tar.gz" >> SHA2-256SUMS |         echo "${{ needs.build_unix.outputs.sha256_tar }}  yt-dlp.tar.gz" >> SHA2-256SUMS | ||||||
|  |         echo "${{ needs.build_unix.outputs.sha256_linux }}  yt-dlp_linux" >> SHA2-256SUMS | ||||||
|  |         echo "${{ needs.build_unix.outputs.sha256_linux_zip }}  yt-dlp_linux.zip" >> SHA2-256SUMS | ||||||
|         echo "${{ needs.build_windows.outputs.sha256_win }}  yt-dlp.exe" >> SHA2-256SUMS |         echo "${{ needs.build_windows.outputs.sha256_win }}  yt-dlp.exe" >> SHA2-256SUMS | ||||||
|         echo "${{ needs.build_windows.outputs.sha256_py2exe }}  yt-dlp_min.exe" >> SHA2-256SUMS |         echo "${{ needs.build_windows.outputs.sha256_py2exe }}  yt-dlp_min.exe" >> SHA2-256SUMS | ||||||
|         echo "${{ needs.build_windows32.outputs.sha256_win32 }}  yt-dlp_x86.exe" >> SHA2-256SUMS |         echo "${{ needs.build_windows32.outputs.sha256_win32 }}  yt-dlp_x86.exe" >> SHA2-256SUMS | ||||||
| @@ -338,6 +367,8 @@ jobs: | |||||||
|         echo "${{ needs.build_macos.outputs.sha256_macos_zip }}  yt-dlp_macos.zip" >> SHA2-256SUMS |         echo "${{ needs.build_macos.outputs.sha256_macos_zip }}  yt-dlp_macos.zip" >> SHA2-256SUMS | ||||||
|         echo "${{ needs.build_unix.outputs.sha512_bin }}  yt-dlp" >> SHA2-512SUMS |         echo "${{ needs.build_unix.outputs.sha512_bin }}  yt-dlp" >> SHA2-512SUMS | ||||||
|         echo "${{ needs.build_unix.outputs.sha512_tar }}  yt-dlp.tar.gz" >> SHA2-512SUMS |         echo "${{ needs.build_unix.outputs.sha512_tar }}  yt-dlp.tar.gz" >> SHA2-512SUMS | ||||||
|  |         echo "${{ needs.build_unix.outputs.sha512_linux }}  yt-dlp_linux" >> SHA2-512SUMS | ||||||
|  |         echo "${{ needs.build_unix.outputs.sha512_linux_zip }}  yt-dlp_linux.zip" >> SHA2-512SUMS | ||||||
|         echo "${{ needs.build_windows.outputs.sha512_win }}  yt-dlp.exe" >> SHA2-512SUMS |         echo "${{ needs.build_windows.outputs.sha512_win }}  yt-dlp.exe" >> SHA2-512SUMS | ||||||
|         echo "${{ needs.build_windows.outputs.sha512_py2exe }}  yt-dlp_min.exe" >> SHA2-512SUMS |         echo "${{ needs.build_windows.outputs.sha512_py2exe }}  yt-dlp_min.exe" >> SHA2-512SUMS | ||||||
|         echo "${{ needs.build_windows32.outputs.sha512_win32 }}  yt-dlp_x86.exe" >> SHA2-512SUMS |         echo "${{ needs.build_windows32.outputs.sha512_win32 }}  yt-dlp_x86.exe" >> SHA2-512SUMS | ||||||
|   | |||||||
| @@ -248,6 +248,8 @@ File|Description | |||||||
| :---|:--- | :---|:--- | ||||||
| [yt-dlp_x86.exe](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_x86.exe)|Windows (Vista SP2+) standalone x86 (32-bit) binary | [yt-dlp_x86.exe](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_x86.exe)|Windows (Vista SP2+) standalone x86 (32-bit) binary | ||||||
| [yt-dlp_min.exe](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_min.exe)|Windows (Win7 SP1+) standalone x64 binary built with `py2exe`<br/> ([Not recommended](#standalone-py2exe-builds-windows)) | [yt-dlp_min.exe](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_min.exe)|Windows (Win7 SP1+) standalone x64 binary built with `py2exe`<br/> ([Not recommended](#standalone-py2exe-builds-windows)) | ||||||
|  | [yt-dlp_linux](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux)|UNIX standalone x64 binary | ||||||
|  | [yt-dlp_linux.zip](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux.zip)|Unpackaged Unix executable (no auto-update) | ||||||
| [yt-dlp_win.zip](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_win.zip)|Unpackaged Windows executable (no auto-update) | [yt-dlp_win.zip](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_win.zip)|Unpackaged Windows 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_macos.zip](https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_macos.zip)|Unpackaged MacOS (10.15+) executable (no auto-update) | ||||||
| 
 | 
 | ||||||
|   | |||||||
| @@ -63,7 +63,7 @@ def exe(onedir): | |||||||
|     """@returns (name, path)""" |     """@returns (name, path)""" | ||||||
|     name = '_'.join(filter(None, ( |     name = '_'.join(filter(None, ( | ||||||
|         'yt-dlp', |         'yt-dlp', | ||||||
|         OS_NAME == 'darwin' and 'macos', |         {'win32': '', 'darwin': 'macos'}.get(OS_NAME, OS_NAME), | ||||||
|         ARCH == '32' and 'x86' |         ARCH == '32' and 'x86' | ||||||
|     ))) |     ))) | ||||||
|     return name, ''.join(filter(None, ( |     return name, ''.join(filter(None, ( | ||||||
|   | |||||||
| @@ -45,12 +45,13 @@ _FILE_SUFFIXES = { | |||||||
|     'py2exe': '_min.exe', |     'py2exe': '_min.exe', | ||||||
|     'win32_exe': '.exe', |     'win32_exe': '.exe', | ||||||
|     'darwin_exe': '_macos', |     'darwin_exe': '_macos', | ||||||
|  |     'linux_exe': '_linux', | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| _NON_UPDATEABLE_REASONS = { | _NON_UPDATEABLE_REASONS = { | ||||||
|     **{variant: None for variant in _FILE_SUFFIXES},  # Updatable |     **{variant: None for variant in _FILE_SUFFIXES},  # Updatable | ||||||
|     **{variant: f'Auto-update is not supported for unpackaged {name} executable; Re-download the latest release' |     **{variant: f'Auto-update is not supported for unpackaged {name} executable; Re-download the latest release' | ||||||
|        for variant, name in {'win32_dir': 'Windows', 'darwin_dir': 'MacOS'}.items()}, |        for variant, name in {'win32_dir': 'Windows', 'darwin_dir': 'MacOS', 'linux_dir': 'Linux'}.items()}, | ||||||
|     'source': 'You cannot update when running from source code; Use git to pull the latest changes', |     'source': 'You cannot update when running from source code; Use git to pull the latest changes', | ||||||
|     'unknown': 'It looks like you installed yt-dlp with a package manager, pip or setup.py; Use that to update', |     'unknown': 'It looks like you installed yt-dlp with a package manager, pip or setup.py; Use that to update', | ||||||
|     'other': 'It looks like you are using an unofficial build of yt-dlp; Build the executable again', |     'other': 'It looks like you are using an unofficial build of yt-dlp; Build the executable again', | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 pukkandan
					pukkandan