summaryrefslogtreecommitdiffstats
path: root/taskcluster/scripts/misc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:34:50 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:34:50 +0000
commitdef92d1b8e9d373e2f6f27c366d578d97d8960c6 (patch)
tree2ef34b9ad8bb9a9220e05d60352558b15f513894 /taskcluster/scripts/misc
parentAdding debian version 125.0.3-1. (diff)
downloadfirefox-def92d1b8e9d373e2f6f27c366d578d97d8960c6.tar.xz
firefox-def92d1b8e9d373e2f6f27c366d578d97d8960c6.zip
Merging upstream version 126.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'taskcluster/scripts/misc')
-rwxr-xr-xtaskcluster/scripts/misc/android-gradle-dependencies.sh13
-rw-r--r--taskcluster/scripts/misc/are-we-esmified-yet.py190
-rwxr-xr-xtaskcluster/scripts/misc/build-cpython.sh2
-rwxr-xr-xtaskcluster/scripts/misc/build-custom-car.sh2
-rwxr-xr-xtaskcluster/scripts/misc/build-geckodriver.sh9
-rwxr-xr-xtaskcluster/scripts/misc/build-gn-macosx.sh2
-rwxr-xr-xtaskcluster/scripts/misc/build-llvm-common.sh4
-rwxr-xr-xtaskcluster/scripts/misc/build-nasm.sh4
-rwxr-xr-xtaskcluster/scripts/misc/build-pkgconf.sh4
-rwxr-xr-xtaskcluster/scripts/misc/build-rust-based-toolchain.sh4
-rwxr-xr-xtaskcluster/scripts/misc/fetch-content10
-rwxr-xr-xtaskcluster/scripts/misc/fetch-talos-pdfs.py118
-rwxr-xr-xtaskcluster/scripts/misc/get-hostutils.sh14
-rwxr-xr-xtaskcluster/scripts/misc/gradle-python-envs.sh11
-rwxr-xr-xtaskcluster/scripts/misc/osx-cross-linker2
-rwxr-xr-xtaskcluster/scripts/misc/repack_rust.py1
-rwxr-xr-xtaskcluster/scripts/misc/run-fetch-talos-pdfs.sh10
-rwxr-xr-xtaskcluster/scripts/misc/wr-macos-cross-build-setup.sh2
-rwxr-xr-xtaskcluster/scripts/misc/wrench-deps-vendoring.sh2
19 files changed, 189 insertions, 215 deletions
diff --git a/taskcluster/scripts/misc/android-gradle-dependencies.sh b/taskcluster/scripts/misc/android-gradle-dependencies.sh
index 2624dc961a..354f25f6c2 100755
--- a/taskcluster/scripts/misc/android-gradle-dependencies.sh
+++ b/taskcluster/scripts/misc/android-gradle-dependencies.sh
@@ -17,5 +17,18 @@ export MOZCONFIG=mobile/android/config/mozconfigs/android-arm-gradle-dependencie
./mach build
./mach gradle downloadDependencies
./mach android gradle-dependencies
+pushd mobile/android/fenix
+./gradlew detekt lint assembleDebug mozilla-lint-rules:test
+popd
+pushd mobile/android/focus-android
+./gradlew lint
+popd
+pushd mobile/android/android-components
+# Before building anything we explicitly build one component that contains Glean and initializes
+# the Miniconda Python environment and doesn't have (almost) any other transitive dependencies.
+# If that happens concurrently with other tasks then this seems to fail quite often.
+./gradlew service-nimbus:build
+./gradlew -Pcoverage detekt lint service-nimbus:assembleAndroidTest samples-browser:testGeckoDebugUnitTest tooling-lint:test
+popd
. taskcluster/scripts/misc/android-gradle-dependencies/after.sh
diff --git a/taskcluster/scripts/misc/are-we-esmified-yet.py b/taskcluster/scripts/misc/are-we-esmified-yet.py
deleted file mode 100644
index 9723565dfc..0000000000
--- a/taskcluster/scripts/misc/are-we-esmified-yet.py
+++ /dev/null
@@ -1,190 +0,0 @@
-#!/usr/bin/env python3
-
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-import json
-import pathlib
-import re
-import subprocess
-import sys
-
-TBPL_FAILURE = 2
-
-excluded_files = [
- # Testcase for loader.
- "js/xpconnect/tests/chrome/file_expandosharing.jsm",
- "js/xpconnect/tests/unit/environment_script.js",
- "js/xpconnect/tests/unit/bogus_element_type.jsm",
- "js/xpconnect/tests/unit/bogus_exports_type.jsm",
- "js/xpconnect/tests/unit/envChain.jsm",
- "js/xpconnect/tests/unit/envChain_subscript.jsm",
- "js/xpconnect/tests/unit/environment_checkscript.jsm",
- "js/xpconnect/tests/unit/environment_loadscript.jsm",
- "js/xpconnect/tests/unit/import_stack.jsm",
- "js/xpconnect/tests/unit/importer.jsm",
- "js/xpconnect/tests/unit/jsm_loaded-1.jsm",
- "js/xpconnect/tests/unit/jsm_loaded-2.jsm",
- "js/xpconnect/tests/unit/jsm_loaded-3.jsm",
- "js/xpconnect/tests/unit/not-esmified-not-exported.jsm",
- "js/xpconnect/tests/unit/recursive_importA.jsm",
- "js/xpconnect/tests/unit/recursive_importB.jsm",
- "js/xpconnect/tests/unit/syntax_error.jsm",
- "js/xpconnect/tests/unit/TestBlob.jsm",
- "js/xpconnect/tests/unit/TestFile.jsm",
- "js/xpconnect/tests/unit/uninitialized_lexical.jsm",
- "dom/url/tests/file_url.jsm",
- "dom/url/tests/file_worker_url.jsm",
- "dom/url/tests/test_bug883784.jsm",
- "dom/workers/test/WorkerTest.jsm",
- "dom/encoding/test/file_stringencoding.jsm",
- "remote/shared/messagehandler/test/browser/resources/modules/root/invalid.jsm",
- "toolkit/actors/TestProcessActorChild.jsm",
- "toolkit/actors/TestProcessActorParent.jsm",
- "toolkit/actors/TestWindowChild.jsm",
- "toolkit/actors/TestWindowParent.jsm",
- # Testcase for build system.
- "python/mozbuild/mozbuild/test/backend/data/build/bar.jsm",
- "python/mozbuild/mozbuild/test/backend/data/build/baz.jsm",
- "python/mozbuild/mozbuild/test/backend/data/build/foo.jsm",
- "python/mozbuild/mozbuild/test/backend/data/build/qux.jsm",
- # EXPORTED_SYMBOLS inside testcase.
- "tools/lint/eslint/eslint-plugin-mozilla/tests/mark-exported-symbols-as-used.js",
-]
-
-if pathlib.Path(".hg").exists():
- mode = "hg"
-elif pathlib.Path(".git").exists():
- mode = "git"
-else:
- print(
- "Error: This script needs to be run inside mozilla-central checkout "
- "of either mercurial or git.",
- file=sys.stderr,
- )
- sys.exit(TBPL_FAILURE)
-
-
-def new_files_struct():
- return {
- "jsm": [],
- "esm": [],
- "subdir": {},
- }
-
-
-def put_file(files, kind, path):
- """Put a path into files tree structure."""
-
- if str(path) in excluded_files:
- return
-
- name = path.name
-
- current_files = files
- for part in path.parent.parts:
- if part not in current_files["subdir"]:
- current_files["subdir"][part] = new_files_struct()
- current_files = current_files["subdir"][part]
-
- current_files[kind].append(name)
-
-
-def run(cmd):
- """Run command and return output as lines, excluding empty line."""
- lines = subprocess.run(cmd, stdout=subprocess.PIPE).stdout.decode()
- return filter(lambda x: x != "", lines.split("\n"))
-
-
-def collect_jsm(files):
- """Collect JSM files."""
- kind = "jsm"
-
- # jsm files
- if mode == "hg":
- cmd = ["hg", "files", "set:glob:**/*.jsm"]
- else:
- cmd = ["git", "ls-files", "*.jsm"]
- for line in run(cmd):
- put_file(files, kind, pathlib.Path(line))
-
- # js files with EXPORTED_SYMBOLS
- if mode == "hg":
- cmd = ["hg", "files", r"set:grep('EXPORTED_SYMBOLS = \[') and glob:**/*.js"]
- for line in run(cmd):
- put_file(files, kind, pathlib.Path(line))
- else:
- handled = {}
- cmd = ["git", "grep", r"EXPORTED_SYMBOLS = \[", "*.js"]
- for line in run(cmd):
- m = re.search("^([^:]+):", line)
- if not m:
- continue
- path = m.group(1)
- if path in handled:
- continue
- handled[path] = True
- put_file(files, kind, pathlib.Path(path))
-
-
-def collect_esm(files):
- """Collect system ESM files."""
- kind = "esm"
-
- # sys.mjs files
- if mode == "hg":
- cmd = ["hg", "files", "set:glob:**/*.sys.mjs"]
- else:
- cmd = ["git", "ls-files", "*.sys.mjs"]
- for line in run(cmd):
- put_file(files, kind, pathlib.Path(line))
-
-
-def to_stat(files):
- """Convert files tree into status tree."""
- jsm = len(files["jsm"])
- esm = len(files["esm"])
- subdir = {}
-
- for key, sub_files in files["subdir"].items():
- sub_stat = to_stat(sub_files)
-
- subdir[key] = sub_stat
- jsm += sub_stat["jsm"]
- esm += sub_stat["esm"]
-
- stat = {
- "jsm": jsm,
- "esm": esm,
- }
- if len(subdir):
- stat["subdir"] = subdir
-
- return stat
-
-
-if mode == "hg":
- cmd = ["hg", "parent", "--template", "{node}"]
- commit_hash = list(run(cmd))[0]
-
- cmd = ["hg", "parent", "--template", "{date|shortdate}"]
- date = list(run(cmd))[0]
-else:
- cmd = ["git", "log", "-1", "--pretty=%H"]
- git_hash = list(run(cmd))[0]
- cmd = ["git", "cinnabar", "git2hg", git_hash]
- commit_hash = list(run(cmd))[0]
-
- cmd = ["git", "log", "-1", "--pretty=%cs"]
- date = list(run(cmd))[0]
-
-files = new_files_struct()
-collect_jsm(files)
-collect_esm(files)
-
-stat = to_stat(files)
-stat["hash"] = commit_hash
-stat["date"] = date
-
-print(json.dumps(stat, indent=2))
diff --git a/taskcluster/scripts/misc/build-cpython.sh b/taskcluster/scripts/misc/build-cpython.sh
index aac2034d0a..95b5e81733 100755
--- a/taskcluster/scripts/misc/build-cpython.sh
+++ b/taskcluster/scripts/misc/build-cpython.sh
@@ -35,7 +35,7 @@ case `uname -s` in
macosx_version_min=10.12
;;
esac
- macosx_sdk=14.2
+ macosx_sdk=14.4
# NOTE: both CFLAGS and CPPFLAGS need to be set here, otherwise
# configure step fails.
sysroot_flags="-isysroot ${MOZ_FETCHES_DIR}/MacOSX${macosx_sdk}.sdk -mmacosx-version-min=${macosx_version_min}"
diff --git a/taskcluster/scripts/misc/build-custom-car.sh b/taskcluster/scripts/misc/build-custom-car.sh
index 62c135c83e..78757a4664 100755
--- a/taskcluster/scripts/misc/build-custom-car.sh
+++ b/taskcluster/scripts/misc/build-custom-car.sh
@@ -55,7 +55,7 @@ fi
# Logic for macosx64
if [[ $(uname -s) == "Darwin" ]]; then
# Modify the config with fetched sdk path
- export MACOS_SYSROOT="$MOZ_FETCHES_DIR/MacOSX14.2.sdk"
+ export MACOS_SYSROOT="$MOZ_FETCHES_DIR/MacOSX14.4.sdk"
# Avoid mixing up the system python and toolchain python in the
# python path configuration
diff --git a/taskcluster/scripts/misc/build-geckodriver.sh b/taskcluster/scripts/misc/build-geckodriver.sh
index 7434ee2ef8..59b3946821 100755
--- a/taskcluster/scripts/misc/build-geckodriver.sh
+++ b/taskcluster/scripts/misc/build-geckodriver.sh
@@ -18,14 +18,14 @@ case "$TARGET" in
COMPRESS_EXT=zip
. $GECKO_PATH/taskcluster/scripts/misc/vs-setup.sh
# Bug 1584530: don't require the Microsoft MSVC runtime to be installed.
- export RUSTFLAGS="-Ctarget-feature=+crt-static -C linker=$MOZ_FETCHES_DIR/clang/bin/lld-link"
+ RUSTFLAGS="-Ctarget-feature=+crt-static -C linker=$MOZ_FETCHES_DIR/clang/bin/lld-link"
export TARGET_CFLAGS="-Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml"
export TARGET_CXXFLAGS="-Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml"
;;
# OSX cross builds are a bit harder
*-apple-darwin)
export PATH="$MOZ_FETCHES_DIR/clang/bin:$PATH"
- export RUSTFLAGS="-C linker=$GECKO_PATH/taskcluster/scripts/misc/osx-cross-linker"
+ RUSTFLAGS="-C linker=$GECKO_PATH/taskcluster/scripts/misc/osx-cross-linker"
if test "$TARGET" = "aarch64-apple-darwin"; then
export MACOSX_DEPLOYMENT_TARGET=11.0
else
@@ -33,15 +33,16 @@ case "$TARGET" in
fi
;;
aarch64-unknown-linux-musl)
- export RUSTFLAGS="-C linker=$MOZ_FETCHES_DIR/clang/bin/clang -C link-arg=--target=$TARGET -C link-arg=-fuse-ld=lld"
+ RUSTFLAGS="-C linker=$MOZ_FETCHES_DIR/clang/bin/clang -C link-arg=--target=$TARGET -C link-arg=-fuse-ld=lld"
;;
esac
export PATH="$MOZ_FETCHES_DIR/rustc/bin:$PATH"
+export RUSTFLAGS="-Dwarnings $RUSTFLAGS"
cd $GECKO_PATH/testing/geckodriver
-cp $GECKO_PATH/.cargo/config.in $GECKO_PATH/.cargo/config
+cp $GECKO_PATH/.cargo/config.toml.in $GECKO_PATH/.cargo/config.toml
cargo build --frozen --verbose --release --target "$TARGET"
diff --git a/taskcluster/scripts/misc/build-gn-macosx.sh b/taskcluster/scripts/misc/build-gn-macosx.sh
index 0d7f5d50a3..01285f4731 100755
--- a/taskcluster/scripts/misc/build-gn-macosx.sh
+++ b/taskcluster/scripts/misc/build-gn-macosx.sh
@@ -5,7 +5,7 @@ set -e -v
WORKSPACE=$HOME/workspace
-CROSS_SYSROOT=$MOZ_FETCHES_DIR/MacOSX14.2.sdk
+CROSS_SYSROOT=$MOZ_FETCHES_DIR/MacOSX14.4.sdk
export MACOSX_DEPLOYMENT_TARGET=10.12
export CC=$MOZ_FETCHES_DIR/clang/bin/clang
diff --git a/taskcluster/scripts/misc/build-llvm-common.sh b/taskcluster/scripts/misc/build-llvm-common.sh
index 73efc5093d..a5cd8b542f 100755
--- a/taskcluster/scripts/misc/build-llvm-common.sh
+++ b/taskcluster/scripts/misc/build-llvm-common.sh
@@ -39,11 +39,11 @@ case "$target" in
-DCMAKE_LIPO=$MOZ_FETCHES_DIR/clang/bin/llvm-lipo
-DCMAKE_SYSTEM_NAME=Darwin
-DCMAKE_SYSTEM_VERSION=$MACOSX_DEPLOYMENT_TARGET
- -DCMAKE_OSX_SYSROOT=$MOZ_FETCHES_DIR/MacOSX14.2.sdk
+ -DCMAKE_OSX_SYSROOT=$MOZ_FETCHES_DIR/MacOSX14.4.sdk
-DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld
-DCMAKE_SHARED_LINKER_FLAGS=-fuse-ld=lld
-DDARWIN_osx_ARCHS=$arch
- -DDARWIN_osx_SYSROOT=$MOZ_FETCHES_DIR/MacOSX14.2.sdk
+ -DDARWIN_osx_SYSROOT=$MOZ_FETCHES_DIR/MacOSX14.4.sdk
-DDARWIN_macosx_OVERRIDE_SDK_VERSION=11.0
-DDARWIN_osx_BUILTIN_ARCHS=$arch
-DLLVM_DEFAULT_TARGET_TRIPLE=$target
diff --git a/taskcluster/scripts/misc/build-nasm.sh b/taskcluster/scripts/misc/build-nasm.sh
index 98370b312f..bf01b8cc55 100755
--- a/taskcluster/scripts/misc/build-nasm.sh
+++ b/taskcluster/scripts/misc/build-nasm.sh
@@ -38,13 +38,13 @@ case "$1" in
macosx64)
export MACOSX_DEPLOYMENT_TARGET=10.12
TARGET=x86_64-apple-darwin
- CC="clang -fuse-ld=lld --target=$TARGET -isysroot $MOZ_FETCHES_DIR/MacOSX14.2.sdk"
+ CC="clang -fuse-ld=lld --target=$TARGET -isysroot $MOZ_FETCHES_DIR/MacOSX14.4.sdk"
EXE=
;;
macosx64-aarch64)
export MACOSX_DEPLOYMENT_TARGET=11.0
TARGET=aarch64-apple-darwin
- CC="clang -fuse-ld=lld --target=$TARGET -isysroot $MOZ_FETCHES_DIR/MacOSX14.2.sdk"
+ CC="clang -fuse-ld=lld --target=$TARGET -isysroot $MOZ_FETCHES_DIR/MacOSX14.4.sdk"
EXE=
;;
*)
diff --git a/taskcluster/scripts/misc/build-pkgconf.sh b/taskcluster/scripts/misc/build-pkgconf.sh
index ef211eeef1..330a8c53f3 100755
--- a/taskcluster/scripts/misc/build-pkgconf.sh
+++ b/taskcluster/scripts/misc/build-pkgconf.sh
@@ -16,13 +16,13 @@ x86_64-unknown-linux-gnu)
x86_64-apple-darwin)
export MACOSX_DEPLOYMENT_TARGET=10.12
TARGET=$1
- CC="clang --target=$TARGET -isysroot $MOZ_FETCHES_DIR/MacOSX14.2.sdk"
+ CC="clang --target=$TARGET -isysroot $MOZ_FETCHES_DIR/MacOSX14.4.sdk"
EXE=
;;
aarch64-apple-darwin)
export MACOSX_DEPLOYMENT_TARGET=11.0
TARGET=$1
- CC="clang --target=$TARGET -isysroot $MOZ_FETCHES_DIR/MacOSX14.2.sdk"
+ CC="clang --target=$TARGET -isysroot $MOZ_FETCHES_DIR/MacOSX14.4.sdk"
EXE=
;;
x86_64-pc-windows-gnu)
diff --git a/taskcluster/scripts/misc/build-rust-based-toolchain.sh b/taskcluster/scripts/misc/build-rust-based-toolchain.sh
index 707ba9d478..42715f6607 100755
--- a/taskcluster/scripts/misc/build-rust-based-toolchain.sh
+++ b/taskcluster/scripts/misc/build-rust-based-toolchain.sh
@@ -31,8 +31,8 @@ x86_64-unknown-linux-gnu)
fi
export CC="$MOZ_FETCHES_DIR/clang/bin/clang"
export CXX="$MOZ_FETCHES_DIR/clang/bin/clang++"
- export TARGET_CFLAGS="-isysroot $MOZ_FETCHES_DIR/MacOSX14.2.sdk"
- export TARGET_CXXFLAGS="-isysroot $MOZ_FETCHES_DIR/MacOSX14.2.sdk -stdlib=libc++"
+ export TARGET_CFLAGS="-isysroot $MOZ_FETCHES_DIR/MacOSX14.4.sdk"
+ export TARGET_CXXFLAGS="-isysroot $MOZ_FETCHES_DIR/MacOSX14.4.sdk -stdlib=libc++"
;;
*-pc-windows-msvc)
# Cross-compiling for Windows on Linux.
diff --git a/taskcluster/scripts/misc/fetch-content b/taskcluster/scripts/misc/fetch-content
index 6e7b625dce..8dcf0960cc 100755
--- a/taskcluster/scripts/misc/fetch-content
+++ b/taskcluster/scripts/misc/fetch-content
@@ -263,8 +263,6 @@ def download_to_path(url, path, sha256=None, size=None):
fh.write(chunk)
return
- except IntegrityError:
- raise
except Exception as e:
log("Download failed: {}".format(e))
continue
@@ -275,17 +273,15 @@ def download_to_path(url, path, sha256=None, size=None):
def download_to_memory(url, sha256=None, size=None):
"""Download a URL to memory, possibly with verification."""
- data = b""
for _ in retrier(attempts=5, sleeptime=60):
- try:
- log("Downloading %s" % (url))
+ data = b""
+ log("Downloading %s" % (url))
+ try:
for chunk in stream_download(url, sha256=sha256, size=size):
data += chunk
return data
- except IntegrityError:
- raise
except Exception as e:
log("Download failed: {}".format(e))
continue
diff --git a/taskcluster/scripts/misc/fetch-talos-pdfs.py b/taskcluster/scripts/misc/fetch-talos-pdfs.py
new file mode 100755
index 0000000000..059af062e7
--- /dev/null
+++ b/taskcluster/scripts/misc/fetch-talos-pdfs.py
@@ -0,0 +1,118 @@
+#!/usr/bin/env python3
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+"""
+This script downloads all the required PDFs from the test_manifest.json
+file found in the mozilla pdf.js repo.
+"""
+
+import json
+import os
+import pathlib
+import shutil
+
+import requests
+from redo import retriable
+
+
+def log(msg):
+ print("fetch-talos-pdf: %s" % msg)
+
+
+@retriable(attempts=7, sleeptime=5, sleepscale=2)
+def fetch_file(url, filepath):
+ """Download a file from the given url to a given file.
+
+ :param str url: URL to download file from.
+ :param Path filepath: Location to ouput the downloaded file
+ (includes the name of the file).
+ """
+ size = 4096
+ r = requests.get(url, stream=True)
+ r.raise_for_status()
+
+ with filepath.open("wb") as fd:
+ for chunk in r.iter_content(size):
+ fd.write(chunk)
+
+
+def fetch_talos_pdf_link(pdf_path, output_file):
+ """Fetches a PDF file with a link into the output file location.
+
+ :param Path pdf_path: Path to a PDF file that contains a URL to download from.
+ :param Path output_file: Location (including the file name) to download PDF to.
+ """
+ pdf_link = pdf_path.read_text().strip()
+ log(f"Downloading from PDF link: {pdf_link}")
+ fetch_file(pdf_link, output_file)
+
+
+def gather_talos_pdf(test_folder, pdf_info, output_dir):
+ """Gathers a PDF file into the output directory.
+
+ :param Path test_folder: The test folder that the pdfs can be found in.
+ :param Path pdf_info: Information about the pdf we're currently gathering, and
+ found in the test/test_manifest.json file from the pdf.js repo.
+ :param Path output_dir: The directory to move/download the PDF to.
+ """
+ pdf_file = pdf_info["file"]
+ output_pdf_path = pathlib.Path(output_dir, pathlib.Path(pdf_file).name)
+
+ log(f"Gathering PDF {pdf_file}...")
+ if output_pdf_path.exists():
+ log(f"{pdf_file} already exists in output location")
+ elif pdf_info.get("link", False):
+ fetch_talos_pdf_link(
+ pathlib.Path(test_folder, pdf_file + ".link"), output_pdf_path
+ )
+ else:
+ log(f"Copying PDF to output location {output_pdf_path}")
+ shutil.copy(pathlib.Path(test_folder, pdf_file), output_pdf_path)
+
+
+def gather_talos_pdfs(pdf_js_repo, output_dir):
+ """Gather all pdfs to be used in the talos pdfpaint test.
+
+ Uses the pdf.js repo to gather the files from it's test/test_manifest.json
+ file. Some of these are also links that need to be downloaded. These
+ are output in an output directory.
+
+ :param Path pdf_js_repo: Path to the Mozilla Github pdf.js repo.
+ :param Path output_dir: Output directory for the PDFs.
+ """
+ test_manifest_path = pathlib.Path(
+ pdf_js_repo, "test", "test_manifest.json"
+ ).resolve()
+ test_folder = test_manifest_path.parent
+
+ # Gather all the PDFs into the output directory
+ test_manifest = json.loads(test_manifest_path.read_text())
+ for pdf_info in test_manifest:
+ gather_talos_pdf(test_folder, pdf_info, output_dir)
+
+ # Include the test manifest in the output directory as it
+ # contains the names of the tests
+ shutil.copy(test_manifest_path, pathlib.Path(output_dir, test_manifest_path.name))
+
+
+if __name__ == "__main__":
+ moz_fetches_dir = os.environ.get("MOZ_FETCHES_DIR", "")
+ if not moz_fetches_dir:
+ raise Exception(
+ "MOZ_FETCHES_DIR is not set to the path containing the pdf.js repo"
+ )
+
+ pdf_js_repo = pathlib.Path(moz_fetches_dir, "pdf.js")
+ if not pdf_js_repo.exists():
+ raise Exception("Can't find the pdf.js repository in MOZ_FETCHES_DIR")
+
+ output_dir = os.environ.get("OUTPUT_DIR", "")
+ if not output_dir:
+ raise Exception("OUTPUT_DIR is not set for the file output")
+
+ output_dir_path = pathlib.Path(output_dir)
+ output_dir_path.mkdir(parents=True, exist_ok=True)
+ gather_talos_pdfs(pdf_js_repo, output_dir_path)
diff --git a/taskcluster/scripts/misc/get-hostutils.sh b/taskcluster/scripts/misc/get-hostutils.sh
new file mode 100755
index 0000000000..95173c1b4f
--- /dev/null
+++ b/taskcluster/scripts/misc/get-hostutils.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+artifact=$(basename "$TOOLCHAIN_ARTIFACT")
+project=${artifact%.tar.*}
+
+cd $GECKO_PATH
+
+. taskcluster/scripts/misc/tooltool-download.sh
+
+cd $MOZ_FETCHES_DIR
+mv host-utils-* $project
+tar -acvf $artifact $project
+mkdir -p $UPLOAD_DIR
+mv $artifact $UPLOAD_DIR
diff --git a/taskcluster/scripts/misc/gradle-python-envs.sh b/taskcluster/scripts/misc/gradle-python-envs.sh
new file mode 100755
index 0000000000..5873e3fa91
--- /dev/null
+++ b/taskcluster/scripts/misc/gradle-python-envs.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -x -e -v
+
+VERSION="$1"
+
+BASE_URL=https://plugins.gradle.org/m2/gradle/plugin/com/jetbrains/python/gradle-python-envs
+
+mkdir -p "${UPLOAD_DIR}"
+wget --no-parent --recursive --execute robots=off "${BASE_URL}/${VERSION}/"
+tar caf "${UPLOAD_DIR}/gradle-python-envs-${VERSION}.tar.zst" plugins.gradle.org
diff --git a/taskcluster/scripts/misc/osx-cross-linker b/taskcluster/scripts/misc/osx-cross-linker
index ec08589524..886002bb07 100755
--- a/taskcluster/scripts/misc/osx-cross-linker
+++ b/taskcluster/scripts/misc/osx-cross-linker
@@ -4,5 +4,5 @@ exec $MOZ_FETCHES_DIR/clang/bin/clang -v \
-fuse-ld=lld \
-mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET:-10.12} \
-target $TARGET \
- -isysroot $MOZ_FETCHES_DIR/MacOSX14.2.sdk \
+ -isysroot $MOZ_FETCHES_DIR/MacOSX14.4.sdk \
"$@"
diff --git a/taskcluster/scripts/misc/repack_rust.py b/taskcluster/scripts/misc/repack_rust.py
index 43bbe44f16..2c8ff7288d 100755
--- a/taskcluster/scripts/misc/repack_rust.py
+++ b/taskcluster/scripts/misc/repack_rust.py
@@ -422,6 +422,7 @@ def build_src(install_dir, host, targets, patches):
[build]
docs = false
sanitizers = true
+ profiler = true
extended = true
tools = ["analysis", "cargo", "rustfmt", "clippy", "src", "rust-analyzer"]
cargo-native-static = true
diff --git a/taskcluster/scripts/misc/run-fetch-talos-pdfs.sh b/taskcluster/scripts/misc/run-fetch-talos-pdfs.sh
new file mode 100755
index 0000000000..c5c350fe78
--- /dev/null
+++ b/taskcluster/scripts/misc/run-fetch-talos-pdfs.sh
@@ -0,0 +1,10 @@
+#! /bin/bash -vex
+set -x -e -v
+
+export OUTPUT_DIR=/builds/worker/talos-pdfs
+
+cd $GECKO_PATH
+./mach python taskcluster/scripts/misc/fetch-talos-pdfs.py
+
+mkdir -p $UPLOAD_DIR
+tar -cavf $UPLOAD_DIR/talos-pdfs.tar.zst -C $OUTPUT_DIR/.. talos-pdfs
diff --git a/taskcluster/scripts/misc/wr-macos-cross-build-setup.sh b/taskcluster/scripts/misc/wr-macos-cross-build-setup.sh
index bfed36012c..d984f8d8e8 100755
--- a/taskcluster/scripts/misc/wr-macos-cross-build-setup.sh
+++ b/taskcluster/scripts/misc/wr-macos-cross-build-setup.sh
@@ -3,7 +3,7 @@ set -x -e -v
export TARGET_TRIPLE="x86_64-apple-darwin"
-MACOS_SYSROOT="${MOZ_FETCHES_DIR}/MacOSX14.2.sdk"
+MACOS_SYSROOT="${MOZ_FETCHES_DIR}/MacOSX14.4.sdk"
CLANGDIR="${MOZ_FETCHES_DIR}/clang"
# Deploy the wrench dependencies
diff --git a/taskcluster/scripts/misc/wrench-deps-vendoring.sh b/taskcluster/scripts/misc/wrench-deps-vendoring.sh
index 8b1897bfd8..7fd77bc074 100755
--- a/taskcluster/scripts/misc/wrench-deps-vendoring.sh
+++ b/taskcluster/scripts/misc/wrench-deps-vendoring.sh
@@ -12,7 +12,7 @@ cd $GECKO_PATH
export PATH=$PATH:$MOZ_FETCHES_DIR/rustc/bin:$HOME/.cargo/bin
cd gfx/wr/
mkdir .cargo
-cargo vendor --locked --sync ./Cargo.toml > .cargo/config
+cargo vendor --locked --sync ./Cargo.toml > .cargo/config.toml
mkdir wrench-deps
mv vendor .cargo wrench-deps/