Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 16 additions & 15 deletions scripts/build-ffmpeg.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,22 +56,22 @@ def calculate_sha256(filename: str) -> str:
gnutls_group = [
Package(
name="unistring",
source_url="https://ftp.gnu.org/gnu/libunistring/libunistring-1.2.tar.gz",
sha256="fd6d5662fa706487c48349a758b57bc149ce94ec6c30624ec9fdc473ceabbc8e",
source_url="https://ftp.gnu.org/gnu/libunistring/libunistring-1.3.tar.gz",
sha256="8ea8ccf86c09dd801c8cac19878e804e54f707cf69884371130d20bde68386b7",
),
Package(
name="nettle",
source_url="https://ftp.gnu.org/gnu/nettle/nettle-3.9.1.tar.gz",
sha256="ccfeff981b0ca71bbd6fbcb054f407c60ffb644389a5be80d6716d5b550c6ce3",
source_url="https://ftp.gnu.org/gnu/nettle/nettle-3.10.1.tar.gz",
sha256="b0fcdd7fc0cdea6e80dcf1dd85ba794af0d5b4a57e26397eee3bc193272d9132",
requires=["gmp"],
build_arguments=["--disable-documentation"],
# build randomly fails with "*** missing separator. Stop."
build_parallel=False,
),
Package(
name="gnutls",
source_url="https://www.gnupg.org/ftp/gcrypt/gnutls/v3.8/gnutls-3.8.1.tar.xz",
sha256="ba8b9e15ae20aba88f44661978f5b5863494316fe7e722ede9d069fe6294829c",
source_url="https://www.gnupg.org/ftp/gcrypt/gnutls/v3.8/gnutls-3.8.9.tar.xz",
sha256="69e113d802d1670c4d5ac1b99040b1f2d5c7c05daec5003813c049b5184820ed",
requires=["nettle", "unistring"],
build_arguments=[
"--disable-cxx",
Expand Down Expand Up @@ -205,13 +205,15 @@ def calculate_sha256(filename: str) -> str:
Package(
name="opencore-amr",
source_url="http://deb.debian.org/debian/pool/main/o/opencore-amr/opencore-amr_0.1.5.orig.tar.gz",
sha256="2c006cb9d5f651bfb5e60156dbff6af3c9d35c7bbcc9015308c0aff1e14cd341",
# parallel build hangs on Windows
build_parallel=plat != "Windows",
when=When.community_only,
),
Package(
name="x264",
source_url="https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.bz2",
source_url="https://code.videolan.org/videolan/x264/-/archive/32c3b801191522961102d4bea292cdb61068d0dd/x264-32c3b801191522961102d4bea292cdb61068d0dd.tar.bz2",
sha256="d7748f350127cea138ad97479c385c9a35a6f8527bc6ef7a52236777cf30b839",
# assembly contains textrels which are not supported by musl
build_arguments=["--disable-asm"] if is_musllinux else [],
# parallel build runs out of memory on Windows
Expand All @@ -221,13 +223,15 @@ def calculate_sha256(filename: str) -> str:
Package(
name="x265",
source_url="https://bitbucket.org/multicoreware/x265_git/downloads/x265_3.5.tar.gz",
sha256="e70a3335cacacbba0b3a20ec6fecd6783932288ebc8163ad74bcc9606477cae8",
build_system="cmake",
source_dir="source",
when=When.community_only,
),
Package(
name="srt",
source_url="https://github.com/Haivision/srt/archive/refs/tags/v1.5.4.tar.gz",
sha256="d0a8b600fe1b4eaaf6277530e3cfc8f15b8ce4035f16af4a5eb5d4b123640cdd",
build_system="cmake",
build_arguments=(
[r"-DOPENSSL_ROOT_DIR=C:\Program Files\OpenSSL"]
Expand Down Expand Up @@ -256,7 +260,7 @@ def calculate_sha256(filename: str) -> str:
)


def download_and_verify_package(package: Package) -> tuple[str, str]:
def download_and_verify_package(package: Package) -> None:
tarball = os.path.join(
os.path.abspath("source"),
package.source_filename or package.source_url.split("/")[-1],
Expand All @@ -272,17 +276,13 @@ def download_and_verify_package(package: Package) -> tuple[str, str]:
raise ValueError(f"tar bar doesn't exist: {tarball}")

sha = calculate_sha256(tarball)
if package.sha256 is None:
print(f"sha256 for {package.name}: {sha}")
elif package.sha256 == sha:
if package.sha256 == sha:
print(f"{package.name} tarball: hashes match")
else:
raise ValueError(
f"sha256 hash of {package.name} tarball do not match!\nExpected: {package.sha}\nGot: {sha}"
f"sha256 hash of {package.name} tarball do not match!\nExpected: {package.sha256}\nGot: {sha}"
)

return package.name, tarball


def download_tars(packages: list[Package]) -> None:
with concurrent.futures.ThreadPoolExecutor() as executor:
Expand All @@ -292,8 +292,9 @@ def download_tars(packages: list[Package]) -> None:
}

for future in concurrent.futures.as_completed(future_to_package):
name = future_to_package[future]
try:
name, tarball = future.result()
future.result()
except Exception as exc:
print(f"{name} generated an exception: {exc}")
raise
Expand Down
2 changes: 1 addition & 1 deletion scripts/cibuildpkg.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ class When(IntEnum):
class Package:
name: str
source_url: str
sha256: str | None = None
sha256: str
build_system: str = "autoconf"
build_arguments: list[str] = field(default_factory=list)
build_dir: str = "build"
Expand Down