From 9c37bb14e365981f9a3f452aa887c71a75c2a552 Mon Sep 17 00:00:00 2001 From: Adrian Toth Date: Sat, 8 Jun 2024 15:56:35 +0200 Subject: [PATCH] Update URLs to point to new file locations. Add requirements.txt. Compute sha256 checksum for ldap plugin zip --- manifest.toml | 28 ++++++++++++++-------------- requirements.txt | 2 ++ scripts/update_version.py | 18 +++++++++++++++--- 3 files changed, 31 insertions(+), 17 deletions(-) create mode 100644 requirements.txt diff --git a/manifest.toml b/manifest.toml index 41e78ed..ad89462 100644 --- a/manifest.toml +++ b/manifest.toml @@ -58,13 +58,13 @@ ram.runtime = "100M" [resources] [resources.sources] [resources.sources.server] - armhf.url = "https://repo.jellyfin.org/releases/server/debian/versions/stable/server/10.8.13/jellyfin-server_10.8.13-1_armhf.deb" + armhf.url = "https://repo.jellyfin.org/files/releases/server/debian/versions/stable/server/10.8.13/jellyfin-server_10.8.13-1_armhf.deb" armhf.sha256 = "ee4588aeeb55282b044d3bb4efef146a43abd742d3ef9327e042b2959008dc60" - arm64.url = "https://repo.jellyfin.org/releases/server/debian/versions/stable/server/10.8.13/jellyfin-server_10.8.13-1_arm64.deb" + arm64.url = "https://repo.jellyfin.org/files/releases/server/debian/versions/stable/server/10.8.13/jellyfin-server_10.8.13-1_arm64.deb" arm64.sha256 = "b9b917ec6ed4ddd3c728cb7be84245ff625c0a7ae12653a921cb3a9f6149252d" - amd64.url = "https://repo.jellyfin.org/releases/server/debian/versions/stable/server/10.8.13/jellyfin-server_10.8.13-1_amd64.deb" + amd64.url = "https://repo.jellyfin.org/files/releases/server/debian/versions/stable/server/10.8.13/jellyfin-server_10.8.13-1_amd64.deb" amd64.sha256 = "d54decc098d5e61be50847edba8722d6468e22134bae2df514859e064eb8d727" rename = "jellyfin-server.deb" @@ -72,7 +72,7 @@ ram.runtime = "100M" extract = false [resources.sources.web] - url = "https://repo.jellyfin.org/releases/server/debian/versions/stable/web/10.8.13/jellyfin-web_10.8.13-1_all.deb" + url = "https://repo.jellyfin.org/files/releases/server/debian/versions/stable/web/10.8.13/jellyfin-web_10.8.13-1_all.deb" sha256 = "8a30e2239f97d1d749f6059db0ff1e4189f44babfb9b0cf236102b7c95b0babe" rename = "jellyfin-web.deb" @@ -81,13 +81,13 @@ ram.runtime = "100M" [resources.sources.ffmpeg_bookworm] - armhf.url = "https://repo.jellyfin.org/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-bookworm_armhf.deb" + armhf.url = "https://repo.jellyfin.org/files/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-bookworm_armhf.deb" armhf.sha256 = "bdb28e67fa4dc8e321366c4a19e18bcc6166a60d6aa5a4bf2da1263489b4f25f" - arm64.url = "https://repo.jellyfin.org/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-bookworm_arm64.deb" + arm64.url = "https://repo.jellyfin.org/files/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-bookworm_arm64.deb" arm64.sha256 = "aabf62104399f242ddb7b8c2e308976f6b233ceac5ffccbabd340a28e428ca3c" - amd64.url = "https://repo.jellyfin.org/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-bookworm_amd64.deb" + amd64.url = "https://repo.jellyfin.org/files/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-bookworm_amd64.deb" amd64.sha256 = "cb40c04e026d83b9265535e214f883d4a26824b5703304064fd38fffa70ac449" rename = "jellyfin-ffmpeg6.deb" @@ -96,13 +96,13 @@ ram.runtime = "100M" [resources.sources.ffmpeg_bullseye] - armhf.url = "https://repo.jellyfin.org/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-bullseye_armhf.deb" + armhf.url = "https://repo.jellyfin.org/files/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-bullseye_armhf.deb" armhf.sha256 = "700bab9e8c96594f83d731019cdbc20fbab303c1d8440288e463e372cd16ed7a" - arm64.url = "https://repo.jellyfin.org/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-bullseye_arm64.deb" + arm64.url = "https://repo.jellyfin.org/files/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-bullseye_arm64.deb" arm64.sha256 = "56ef93f285e922417cda98b109021be614a5307d9d7c18aff22fa0c439ab77b5" - amd64.url = "https://repo.jellyfin.org/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-bullseye_amd64.deb" + amd64.url = "https://repo.jellyfin.org/files/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-bullseye_amd64.deb" amd64.sha256 = "50b0cbd2cd0ab64fd6803d2bdfd15946ec6f80c0b492f81ad85e921ffafdcf7e" rename = "jellyfin-ffmpeg6.deb" @@ -111,13 +111,13 @@ ram.runtime = "100M" [resources.sources.ffmpeg_buster] - armhf.url = "https://repo.jellyfin.org/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-buster_armhf.deb" + armhf.url = "https://repo.jellyfin.org/files/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-buster_armhf.deb" armhf.sha256 = "6f3beae72aec030aae96dc044bfcf736f12fc135cc574cde8085609e47374a43" - arm64.url = "https://repo.jellyfin.org/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-buster_arm64.deb" + arm64.url = "https://repo.jellyfin.org/files/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-buster_arm64.deb" arm64.sha256 = "109ea41f17e314e3e9b32689844841ddd54a600419ff89e0e979e195a25b91c5" - amd64.url = "https://repo.jellyfin.org/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-buster_amd64.deb" + amd64.url = "https://repo.jellyfin.org/files/releases/server/debian/versions/jellyfin-ffmpeg/6.0.1-3/jellyfin-ffmpeg6_6.0.1-3-buster_amd64.deb" amd64.sha256 = "a1c55b7f439f2b9a487ea90341a280467f1973fcd12607f08bcd16cf22ce307a" rename = "jellyfin-ffmpeg6.deb" @@ -126,7 +126,7 @@ ram.runtime = "100M" [resources.sources.plugin_ldap] - url = "https://repo.jellyfin.org/releases/plugin/ldap-authentication/ldap-authentication_17.0.0.0.zip" + url = "https://repo.jellyfin.org/files/releases/plugin/ldap-authentication/ldap-authentication_17.0.0.0.zip" sha256 = "042bdd16950c7569c154311cc64af49c7d6096e9b0a7184287707d5ee317ecf5" in_subdir = false diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..c9c968c --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +requests +tomlkit \ No newline at end of file diff --git a/scripts/update_version.py b/scripts/update_version.py index 35c4a81..f7723f2 100755 --- a/scripts/update_version.py +++ b/scripts/update_version.py @@ -2,12 +2,13 @@ from typing import Any from pathlib import Path +import hashlib import tomlkit import requests REPO_ROOT = Path(__file__).parent.parent -JELLYFIN_REPO = "https://repo.jellyfin.org" +JELLYFIN_REPO = "https://repo.jellyfin.org/files" JELLYFIN_DEB_REPO = f"{JELLYFIN_REPO}/releases/server/debian" ARCHS = [ @@ -45,7 +46,6 @@ def ffmpeg_url(arch: str, deb: str, version: str) -> str: def ldap_url(arch: str, version: str) -> str: - major = version.split(".")[0] return f"{JELLYFIN_REPO}/releases/plugin/ldap-authentication/ldap-authentication_{version}.zip" @@ -56,6 +56,18 @@ def sha256sum_of(url: str) -> str: return content.split(" ")[0] +def sha256_of_remote_file(url: str) -> str: + print(f"Computing sha256sum for {url} ...") + try: + r = requests.get(url, stream=True) + m = hashlib.sha256() + for data in r.iter_content(8192): + m.update(data) + return m.hexdigest() + except Exception as e: + raise RuntimeError(f"Failed to compute sha256 for {url} : {e}") from e + + def main() -> None: manifest_file = REPO_ROOT/"manifest.toml" manifest: dict[str, Any] = tomlkit.parse(manifest_file.open(encoding="utf-8").read()) @@ -81,7 +93,7 @@ def main() -> None: url = ldap_url(arch, ldap_version) manifest["resources"]["sources"]["plugin_ldap"]["url"] = url - manifest["resources"]["sources"]["plugin_ldap"]["sha256"] = sha256sum_of(url) + manifest["resources"]["sources"]["plugin_ldap"]["sha256"] = sha256_of_remote_file(url) manifest_file.open("w", encoding="utf-8").write(tomlkit.dumps(manifest))