ci: mirror pinned ffmpeg sdk inputs
All checks were successful
All checks were successful
This commit is contained in:
@@ -221,10 +221,12 @@ VM op 0x236 (non-modal) / op 0x20f (modal) / op 0x24d (green-mask transition)
|
|||||||
|
|
||||||
Everything before and after the selected decoder is portable. The replacement decision is an in-process
|
Everything before and after the selected decoder is portable. The replacement decision is an in-process
|
||||||
FFmpeg backend behind a project-owned C ABI, not raw FFmpeg structs in Godot/C# and not a subprocess. FFmpeg
|
FFmpeg backend behind a project-owned C ABI, not raw FFmpeg structs in Godot/C# and not a subprocess. FFmpeg
|
||||||
`n8.1.2-44-g7c533d0f86` is pinned by dated release URL, exact byte size, and SHA-256 in each target manifest under
|
`n8.1.2-44-g7c533d0f86` is pinned by immutable project-mirror URL, exact byte size, and SHA-256 in each target
|
||||||
`native/age_movie_ffmpeg/`. BtbN prunes older dated autobuild releases, so upstream availability is not permanent:
|
manifest under `native/age_movie_ffmpeg/`. The anonymously readable `conco/ome-ffmpeg-sdk` generic package on the
|
||||||
the current paired pin restores hosted builds, while a durable project-owned mirror remains necessary to prevent
|
project Gitea server holds both platform archives under version `btbn-autobuild-2026-08-17-13-05`; each manifest
|
||||||
future 404-driven repins. Changing either pin requires rerunning the full installed-movie gate. The shim
|
also retains the original BtbN release URL as provenance. This removes hosted builds from BtbN's dated-autobuild
|
||||||
|
retention window. Changing either pin requires a new immutable mirror version and a rerun of the complete
|
||||||
|
installed-movie gate. The shim
|
||||||
dynamically links an LGPL build made without GPL or nonfree components and uses
|
dynamically links an LGPL build made without GPL or nonfree components and uses
|
||||||
`libavformat`, `libavcodec`, `libavutil`, `libswscale`, and `libswresample`. Release artifacts must carry
|
`libavformat`, `libavcodec`, `libavutil`, `libswscale`, and `libswresample`. Release artifacts must carry
|
||||||
the matching FFmpeg source/configuration and notices required by FFmpeg's
|
the matching FFmpeg source/configuration and notices required by FFmpeg's
|
||||||
|
|||||||
@@ -292,12 +292,14 @@ send either the `step-limit` console block or the generated JSON.
|
|||||||
## Native FFmpeg movie shim (Windows and Linux x64)
|
## Native FFmpeg movie shim (Windows and Linux x64)
|
||||||
|
|
||||||
The target-specific dependency manifests pin dated LGPL shared FFmpeg archives by exact byte size and SHA-256.
|
The target-specific dependency manifests pin dated LGPL shared FFmpeg archives by exact byte size and SHA-256.
|
||||||
BtbN prunes older dated autobuild releases, so the bytes are immutable while retained but their upstream URLs
|
Their primary URLs use the anonymously readable, immutable `conco/ome-ffmpeg-sdk` generic package on the project
|
||||||
are not permanent; a failed 404 requires a paired manifest repin and full native/movie validation, while a
|
Gitea server; `upstream_url` records the original BtbN release location for provenance. BtbN prunes older dated
|
||||||
project-owned durable mirror remains the long-term fix. Bootstrap downloads remove partial files on HTTP failure
|
autobuild releases, so bootstraps do not depend on those upstream URLs remaining live. Uploading a different file
|
||||||
before validating the complete archive. Windows development can use PowerShell/MSVC. Linux-hosted builds use Bash
|
under an existing Gitea package version is forbidden; a dependency change requires a new version plus a paired
|
||||||
with Python 3, curl, MinGW-w64/binutils for the Windows target, a native C compiler/binutils for Linux, and the
|
manifest update and full native/movie validation. Bootstrap downloads remove partial files on HTTP failure before
|
||||||
ordinary archive/core utilities available.
|
validating the complete archive. Windows development can use PowerShell/MSVC. Linux-hosted builds use Bash with
|
||||||
|
Python 3, curl, MinGW-w64/binutils for the Windows target, a native C compiler/binutils for Linux, and the ordinary
|
||||||
|
archive/core utilities available.
|
||||||
|
|
||||||
| Tool | Purpose | Run | Reads → Writes |
|
| Tool | Purpose | Run | Reads → Writes |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
{
|
{
|
||||||
"provider": "BtbN/FFmpeg-Builds",
|
"provider": "BtbN/FFmpeg-Builds",
|
||||||
"release_tag": "autobuild-2026-08-17-13-05",
|
"release_tag": "autobuild-2026-08-17-13-05",
|
||||||
|
"mirror_version": "btbn-autobuild-2026-08-17-13-05",
|
||||||
"archive": "ffmpeg-n8.1.2-44-g7c533d0f86-linux64-lgpl-shared-8.1.tar.xz",
|
"archive": "ffmpeg-n8.1.2-44-g7c533d0f86-linux64-lgpl-shared-8.1.tar.xz",
|
||||||
"url": "https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2026-08-17-13-05/ffmpeg-n8.1.2-44-g7c533d0f86-linux64-lgpl-shared-8.1.tar.xz",
|
"url": "https://git.orfl.xyz/api/packages/conco/generic/ome-ffmpeg-sdk/btbn-autobuild-2026-08-17-13-05/ffmpeg-n8.1.2-44-g7c533d0f86-linux64-lgpl-shared-8.1.tar.xz",
|
||||||
|
"upstream_url": "https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2026-08-17-13-05/ffmpeg-n8.1.2-44-g7c533d0f86-linux64-lgpl-shared-8.1.tar.xz",
|
||||||
"size": 56931952,
|
"size": 56931952,
|
||||||
"sha256": "194dc8d525ac8cea5a5ff2e6fd44754747e69af5a766e7a6727cce363bd65de6",
|
"sha256": "194dc8d525ac8cea5a5ff2e6fd44754747e69af5a766e7a6727cce363bd65de6",
|
||||||
"ffmpeg_version": "n8.1.2-44-g7c533d0f86-20260817",
|
"ffmpeg_version": "n8.1.2-44-g7c533d0f86-20260817",
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
{
|
{
|
||||||
"provider": "BtbN/FFmpeg-Builds",
|
"provider": "BtbN/FFmpeg-Builds",
|
||||||
"release_tag": "autobuild-2026-08-17-13-05",
|
"release_tag": "autobuild-2026-08-17-13-05",
|
||||||
|
"mirror_version": "btbn-autobuild-2026-08-17-13-05",
|
||||||
"archive": "ffmpeg-n8.1.2-44-g7c533d0f86-win64-lgpl-shared-8.1.zip",
|
"archive": "ffmpeg-n8.1.2-44-g7c533d0f86-win64-lgpl-shared-8.1.zip",
|
||||||
"url": "https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2026-08-17-13-05/ffmpeg-n8.1.2-44-g7c533d0f86-win64-lgpl-shared-8.1.zip",
|
"url": "https://git.orfl.xyz/api/packages/conco/generic/ome-ffmpeg-sdk/btbn-autobuild-2026-08-17-13-05/ffmpeg-n8.1.2-44-g7c533d0f86-win64-lgpl-shared-8.1.zip",
|
||||||
|
"upstream_url": "https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2026-08-17-13-05/ffmpeg-n8.1.2-44-g7c533d0f86-win64-lgpl-shared-8.1.zip",
|
||||||
"size": 70837934,
|
"size": 70837934,
|
||||||
"sha256": "681b9ca6d8f9be1e01d8873ad16f8a632f8a22b9653f1044837de6d5979b0fd6",
|
"sha256": "681b9ca6d8f9be1e01d8873ad16f8a632f8a22b9653f1044837de6d5979b0fd6",
|
||||||
"ffmpeg_version": "n8.1.2-44-g7c533d0f86-20260817",
|
"ffmpeg_version": "n8.1.2-44-g7c533d0f86-20260817",
|
||||||
|
|||||||
@@ -49,11 +49,25 @@ class ReleaseWorkflowTests(unittest.TestCase):
|
|||||||
json.loads(WINDOWS_FFMPEG_MANIFEST.read_text(encoding="utf-8")),
|
json.loads(WINDOWS_FFMPEG_MANIFEST.read_text(encoding="utf-8")),
|
||||||
]
|
]
|
||||||
self.assertEqual(1, len({manifest["release_tag"] for manifest in manifests}))
|
self.assertEqual(1, len({manifest["release_tag"] for manifest in manifests}))
|
||||||
|
self.assertEqual(1, len({manifest["mirror_version"] for manifest in manifests}))
|
||||||
for manifest in manifests:
|
for manifest in manifests:
|
||||||
self.assertRegex(manifest["release_tag"], r"^autobuild-\d{4}-\d{2}-\d{2}-\d{2}-\d{2}$")
|
self.assertRegex(manifest["release_tag"], r"^autobuild-\d{4}-\d{2}-\d{2}-\d{2}-\d{2}$")
|
||||||
self.assertNotEqual("latest", manifest["release_tag"])
|
self.assertNotEqual("latest", manifest["release_tag"])
|
||||||
self.assertIn(f"/{manifest['release_tag']}/", manifest["url"])
|
self.assertEqual(f"btbn-{manifest['release_tag']}", manifest["mirror_version"])
|
||||||
|
self.assertTrue(
|
||||||
|
manifest["url"].startswith(
|
||||||
|
"https://git.orfl.xyz/api/packages/conco/generic/ome-ffmpeg-sdk/"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
self.assertIn(f"/{manifest['mirror_version']}/", manifest["url"])
|
||||||
self.assertTrue(manifest["url"].endswith("/" + manifest["archive"]))
|
self.assertTrue(manifest["url"].endswith("/" + manifest["archive"]))
|
||||||
|
self.assertTrue(
|
||||||
|
manifest["upstream_url"].startswith(
|
||||||
|
"https://github.com/BtbN/FFmpeg-Builds/releases/download/"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
self.assertIn(f"/{manifest['release_tag']}/", manifest["upstream_url"])
|
||||||
|
self.assertTrue(manifest["upstream_url"].endswith("/" + manifest["archive"]))
|
||||||
self.assertIn(manifest["ffmpeg_commit"], manifest["archive"])
|
self.assertIn(manifest["ffmpeg_commit"], manifest["archive"])
|
||||||
self.assertGreater(manifest["size"], 50_000_000)
|
self.assertGreater(manifest["size"], 50_000_000)
|
||||||
self.assertRegex(manifest["sha256"], r"^[0-9a-f]{64}$")
|
self.assertRegex(manifest["sha256"], r"^[0-9a-f]{64}$")
|
||||||
|
|||||||
Reference in New Issue
Block a user