From 88068613a128cfa98ecf3747c572addec198a4e3 Mon Sep 17 00:00:00 2001 From: "mr. m" Date: Fri, 9 Jan 2026 02:45:52 +0100 Subject: [PATCH] chore: Override minimum MacOS SDK version, b=no-bug, c=workflows --- .github/workflows/macos-release-build.yml | 5 +- .../moz-configure/toolchain-configure.patch | 13 - src/firefox-patches/148_macos_sdk_26_2.patch | 248 ------------------ .../firefox_148_macos_sdk_override.patch | 13 + 4 files changed, 17 insertions(+), 262 deletions(-) delete mode 100644 src/build/moz-configure/toolchain-configure.patch delete mode 100644 src/firefox-patches/148_macos_sdk_26_2.patch create mode 100644 src/firefox-patches/firefox_148_macos_sdk_override.patch diff --git a/.github/workflows/macos-release-build.yml b/.github/workflows/macos-release-build.yml index ec0870899..5088e70f3 100644 --- a/.github/workflows/macos-release-build.yml +++ b/.github/workflows/macos-release-build.yml @@ -122,9 +122,12 @@ jobs: - name: Bootstrap run: | + cd engine export SURFER_PLATFORM="darwin" export PATH="$(python3 -m site --user-base)/bin":$PATH - npm run bootstrap + # Always exist with 0, even if bootstrap fails + ./mach --no-interactive bootstrap --application-choice browser --exclude macos-sdk || true + cd .. - name: Build language packs run: sh scripts/download-language-packs.sh diff --git a/src/build/moz-configure/toolchain-configure.patch b/src/build/moz-configure/toolchain-configure.patch deleted file mode 100644 index 0de0b2de4..000000000 --- a/src/build/moz-configure/toolchain-configure.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure -index 0fb4faa598072ccad47c376765a9433b40e27a6d..6ab448cc4202e5a3e871dfd753e95d76453758e5 100644 ---- a/build/moz.configure/toolchain.configure -+++ b/build/moz.configure/toolchain.configure -@@ -1995,7 +1995,7 @@ def select_linker_tmpl(host_or_target): - # ensure consistent output. - env["LC_ALL"] = "C" - retcode, stdout, stderr = get_cmd_output(*cmd, env=env) -- if retcode == 1 and "Logging ld64 options" in stderr: -+ if retcode == 1 and "ld: unknown options: --version" in stderr: - kind = "ld64" - - elif retcode != 0: diff --git a/src/firefox-patches/148_macos_sdk_26_2.patch b/src/firefox-patches/148_macos_sdk_26_2.patch deleted file mode 100644 index 9853566f2..000000000 --- a/src/firefox-patches/148_macos_sdk_26_2.patch +++ /dev/null @@ -1,248 +0,0 @@ -diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure ---- a/build/moz.configure/toolchain.configure -+++ b/build/moz.configure/toolchain.configure -@@ -231,11 +231,11 @@ - nargs=1, - help="Location of platform SDK to use", - ) - - def mac_sdk_min_version(): -- return "26.1" -+ return "26.2" - - @depends( - "--with-macos-sdk", - host, - bootstrap_path( -diff --git a/taskcluster/kinds/toolchain/macos-sdk.yml b/taskcluster/kinds/toolchain/macos-sdk.yml ---- a/taskcluster/kinds/toolchain/macos-sdk.yml -+++ b/taskcluster/kinds/toolchain/macos-sdk.yml -@@ -28,24 +28,24 @@ - - https://swcdn.apple.com/content/downloads/15/62/032-84673-A_7A1TG1RF8Z/xpc8q44ggn2pkn82iwr0fi1zeb9cxi8ath/CLTools_macOSNMOS_SDK.pkg - - 8de3306508dca31040b3b49ff370e96c94f4546bcf22cb4069abbb18e2d6bce8e20d40a6903f00ae75558175b624a979ea0444f54bc6d9d67e841f2000b0d863 - - Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk - toolchain-artifact: project/gecko/mac-sdk/MacOSX13.3.sdk.tar.zst - --macosx64-sdk-26.1: -- description: "macOS 26.1 SDK" -+macosx64-sdk-26.2: -+ description: "macOS 26.2 SDK" - treeherder: -- symbol: TM(sdk26.1) -+ symbol: TM(sdk26.2) - run: - arguments: -- - https://swcdn.apple.com/content/downloads/22/09/093-00219-A_WIA1LP39TY/evbam2mb02xqr05ju9ddb95y8qil8kz9tm/CLTools_macOSNMOS_SDK.pkg -- - f6a5f44b3652f5abdf7ad2602f54ad38774404f45264a4e70cfccc58b8b39aed2a89f74ef22c44bf932d0a55b062ebc3651f73fa06ff755ee5da53b9dcc62fba -- - Library/Developer/CommandLineTools/SDKs/MacOSX26.1.sdk -- toolchain-artifact: project/gecko/mac-sdk/MacOSX26.1.sdk.tar.zst -+ - https://swcdn.apple.com/content/downloads/60/22/089-71960-A_W8BL1RUJJ6/5zkyplomhk1cm7z6xja2ktgapnhhti6wwd/CLTools_macOSNMOS_SDK.pkg -+ - f3785f1bbc3b8323121b66fc28ef59083b4f508c7bdabb9d8d916f142ee89b01cb8030eba469eb9107b416d1c9d523a1d2e009cddb83536a819a3704a5d3ce17 -+ - Library/Developer/CommandLineTools/SDKs/MacOSX26.2.sdk -+ toolchain-artifact: project/gecko/mac-sdk/MacOSX26.2.sdk.tar.zst - toolchain-alias: - - macosx64-sdk - - macosx64-sdk-toolchain -- - MacOSX26.1.sdk -+ - MacOSX26.2.sdk - - ios-sdk-18.4: - description: "iPhoneOS18.4 SDK" - treeherder: - symbol: TM(ios18.4) -diff --git a/taskcluster/scripts/misc/build-cpython.sh b/taskcluster/scripts/misc/build-cpython.sh ---- a/taskcluster/scripts/misc/build-cpython.sh -+++ b/taskcluster/scripts/misc/build-cpython.sh -@@ -35,11 +35,11 @@ - macosx_version_min=10.15 - ;; - esac - # NOTE: both CFLAGS and CPPFLAGS need to be set here, otherwise - # configure step fails. -- sysroot_flags="-isysroot ${MOZ_FETCHES_DIR}/MacOSX26.1.sdk -mmacosx-version-min=${macosx_version_min}" -+ sysroot_flags="-isysroot ${MOZ_FETCHES_DIR}/MacOSX26.2.sdk -mmacosx-version-min=${macosx_version_min}" - export CPPFLAGS="${sysroot_flags} -I${xz_prefix}/include" - export CFLAGS=${sysroot_flags} - export LDFLAGS="${LDFLAGS} ${sysroot_flags} -L${xz_prefix}/lib" - configure_flags_extra=--with-openssl=/usr/local/opt/openssl - -diff --git a/taskcluster/scripts/misc/build-custom-car.sh b/taskcluster/scripts/misc/build-custom-car.sh ---- a/taskcluster/scripts/misc/build-custom-car.sh -+++ b/taskcluster/scripts/misc/build-custom-car.sh -@@ -58,11 +58,11 @@ - fi - - # Logic for macosx64 - if [[ $(uname -s) == "Darwin" ]]; then - # Modify the config with fetched sdk path -- export MACOS_SYSROOT="$MOZ_FETCHES_DIR/MacOSX26.1.sdk" -+ export MACOS_SYSROOT="$MOZ_FETCHES_DIR/MacOSX26.2.sdk" - # Bug 1990712 & 1989676 - # HACK: Create a stub DarwinBasic.modulemap to satisfy Ninja’s dependency graph. - # This file does not exist in Command Line Tools SDKs. It seems only the full - # Xcode SDK includes DarwinBasic/DarwinFoundation modulemaps. - mkdir -p "$MACOS_SYSROOT/usr/include" -diff --git a/taskcluster/scripts/misc/build-geckodriver.sh b/taskcluster/scripts/misc/build-geckodriver.sh ---- a/taskcluster/scripts/misc/build-geckodriver.sh -+++ b/taskcluster/scripts/misc/build-geckodriver.sh -@@ -23,11 +23,11 @@ - 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" -- RUSTFLAGS="-Clinker=$MOZ_FETCHES_DIR/clang/bin/clang++ -C link-arg=-isysroot -C link-arg=$MOZ_FETCHES_DIR/MacOSX26.1.sdk -C link-arg=-fuse-ld=lld -C link-arg=--target=$TARGET" -+ RUSTFLAGS="-Clinker=$MOZ_FETCHES_DIR/clang/bin/clang++ -C link-arg=-isysroot -C link-arg=$MOZ_FETCHES_DIR/MacOSX26.2.sdk -C link-arg=-fuse-ld=lld -C link-arg=--target=$TARGET" - if test "$TARGET" = "aarch64-apple-darwin"; then - export MACOSX_DEPLOYMENT_TARGET=11.0 - else - export MACOSX_DEPLOYMENT_TARGET=10.15 - fi -diff --git a/taskcluster/scripts/misc/build-gn-macosx.sh b/taskcluster/scripts/misc/build-gn-macosx.sh ---- a/taskcluster/scripts/misc/build-gn-macosx.sh -+++ b/taskcluster/scripts/misc/build-gn-macosx.sh -@@ -3,11 +3,11 @@ - - # This script is for building GN. - - WORKSPACE=$HOME/workspace - --CROSS_SYSROOT=$MOZ_FETCHES_DIR/MacOSX26.1.sdk -+CROSS_SYSROOT=$MOZ_FETCHES_DIR/MacOSX26.2.sdk - export MACOSX_DEPLOYMENT_TARGET=10.15 - - export CC=$MOZ_FETCHES_DIR/clang/bin/clang - export CXX=$MOZ_FETCHES_DIR/clang/bin/clang++ - export AR=$MOZ_FETCHES_DIR/clang/bin/llvm-ar -diff --git a/taskcluster/scripts/misc/build-llvm-common.sh b/taskcluster/scripts/misc/build-llvm-common.sh ---- a/taskcluster/scripts/misc/build-llvm-common.sh -+++ b/taskcluster/scripts/misc/build-llvm-common.sh -@@ -37,15 +37,15 @@ - $EXTRA_CMAKE_FLAGS - -DCMAKE_LINKER=$MOZ_FETCHES_DIR/clang/bin/ld64.lld - -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/MacOSX26.1.sdk -+ -DCMAKE_OSX_SYSROOT=$MOZ_FETCHES_DIR/MacOSX26.2.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/MacOSX26.1.sdk -+ -DDARWIN_osx_SYSROOT=$MOZ_FETCHES_DIR/MacOSX26.2.sdk - -DDARWIN_macosx_OVERRIDE_SDK_VERSION=11.0 - -DDARWIN_osx_BUILTIN_ARCHS=$arch - -DLLVM_DEFAULT_TARGET_TRIPLE=$target - " - # compiler-rt build script expects to find `codesign` in $PATH. -diff --git a/taskcluster/scripts/misc/build-nasm.sh b/taskcluster/scripts/misc/build-nasm.sh ---- a/taskcluster/scripts/misc/build-nasm.sh -+++ b/taskcluster/scripts/misc/build-nasm.sh -@@ -36,17 +36,17 @@ - EXE=.exe - ;; - macosx64) - export MACOSX_DEPLOYMENT_TARGET=10.15 - TARGET=x86_64-apple-darwin -- CC="clang -fuse-ld=lld --target=$TARGET -isysroot $MOZ_FETCHES_DIR/MacOSX26.1.sdk" -+ CC="clang -fuse-ld=lld --target=$TARGET -isysroot $MOZ_FETCHES_DIR/MacOSX26.2.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/MacOSX26.1.sdk" -+ CC="clang -fuse-ld=lld --target=$TARGET -isysroot $MOZ_FETCHES_DIR/MacOSX26.2.sdk" - EXE= - ;; - *) - CC="clang --sysroot=$MOZ_FETCHES_DIR/sysroot-x86_64-linux-gnu" - EXE= -diff --git a/taskcluster/scripts/misc/build-pkgconf.sh b/taskcluster/scripts/misc/build-pkgconf.sh ---- a/taskcluster/scripts/misc/build-pkgconf.sh -+++ b/taskcluster/scripts/misc/build-pkgconf.sh -@@ -19,17 +19,17 @@ - EXE= - ;; - x86_64-apple-darwin) - export MACOSX_DEPLOYMENT_TARGET=10.15 - TARGET=$1 -- CC="clang --target=$TARGET -isysroot $MOZ_FETCHES_DIR/MacOSX26.1.sdk" -+ CC="clang --target=$TARGET -isysroot $MOZ_FETCHES_DIR/MacOSX26.2.sdk" - EXE= - ;; - aarch64-apple-darwin) - export MACOSX_DEPLOYMENT_TARGET=11.0 - TARGET=$1 -- CC="clang --target=$TARGET -isysroot $MOZ_FETCHES_DIR/MacOSX26.1.sdk" -+ CC="clang --target=$TARGET -isysroot $MOZ_FETCHES_DIR/MacOSX26.2.sdk" - EXE= - ;; - x86_64-pc-windows-gnu) - TARGET=x86_64-w64-mingw32 - CC="x86_64-w64-mingw32-clang -DPKGCONFIG_IS_STATIC=1" -diff --git a/taskcluster/scripts/misc/build-rust-based-toolchain.sh b/taskcluster/scripts/misc/build-rust-based-toolchain.sh ---- a/taskcluster/scripts/misc/build-rust-based-toolchain.sh -+++ b/taskcluster/scripts/misc/build-rust-based-toolchain.sh -@@ -40,11 +40,11 @@ - if test "$TARGET" = "aarch64-apple-darwin"; then - export MACOSX_DEPLOYMENT_TARGET=11.0 - else - export MACOSX_DEPLOYMENT_TARGET=10.15 - fi -- MACOS_SYSROOT=$MOZ_FETCHES_DIR/MacOSX26.1.sdk -+ MACOS_SYSROOT=$MOZ_FETCHES_DIR/MacOSX26.2.sdk - export RUSTFLAGS="-Clinker=$MOZ_FETCHES_DIR/clang/bin/clang++ -C link-arg=-isysroot -C link-arg=$MACOS_SYSROOT -C link-arg=-fuse-ld=lld -C link-arg=--target=$TARGET $rust_lto_flags" - export CC="$MOZ_FETCHES_DIR/clang/bin/clang" - export CXX="$MOZ_FETCHES_DIR/clang/bin/clang++" - export TARGET_CFLAGS="-isysroot $MACOS_SYSROOT -fuse-ld=lld" - export TARGET_CXXFLAGS="-isysroot $MACOS_SYSROOT -fuse-ld=lld -stdlib=libc++" -diff --git a/testing/mozharness/configs/openh264/macosx64-aarch64.py b/testing/mozharness/configs/openh264/macosx64-aarch64.py ---- a/testing/mozharness/configs/openh264/macosx64-aarch64.py -+++ b/testing/mozharness/configs/openh264/macosx64-aarch64.py -@@ -20,18 +20,18 @@ - "arch": "aarch64", - "operating_system": "darwin", - "partial_env": { - "CFLAGS": ( - "-target aarch64-apple-darwin -mcpu=apple-a12 " -- "-isysroot {MOZ_FETCHES_DIR}/MacOSX26.1.sdk " -+ "-isysroot {MOZ_FETCHES_DIR}/MacOSX26.2.sdk " - "-mmacosx-version-min=11.0".format( - MOZ_FETCHES_DIR=os.environ["MOZ_FETCHES_DIR"] - ) - ), - "LDFLAGS": ( - "-target aarch64-apple-darwin -mcpu=apple-a12 " -- "-isysroot {MOZ_FETCHES_DIR}/MacOSX26.1.sdk " -+ "-isysroot {MOZ_FETCHES_DIR}/MacOSX26.2.sdk " - "-mmacosx-version-min=11.0".format( - MOZ_FETCHES_DIR=os.environ["MOZ_FETCHES_DIR"] - ) - ), - "PATH": ( -diff --git a/testing/mozharness/configs/openh264/macosx64.py b/testing/mozharness/configs/openh264/macosx64.py ---- a/testing/mozharness/configs/openh264/macosx64.py -+++ b/testing/mozharness/configs/openh264/macosx64.py -@@ -20,18 +20,18 @@ - "arch": "x64", - "operating_system": "darwin", - "partial_env": { - "CXXFLAGS": ( - "-target x86_64-apple-darwin " -- "-isysroot {MOZ_FETCHES_DIR}/MacOSX26.1.sdk " -+ "-isysroot {MOZ_FETCHES_DIR}/MacOSX26.2.sdk " - "-mmacosx-version-min=10.12".format( - MOZ_FETCHES_DIR=os.environ["MOZ_FETCHES_DIR"] - ) - ), - "LDFLAGS": ( - "-target x86_64-apple-darwin " -- "-isysroot {MOZ_FETCHES_DIR}/MacOSX26.1.sdk " -+ "-isysroot {MOZ_FETCHES_DIR}/MacOSX26.2.sdk " - "-mmacosx-version-min=10.12".format( - MOZ_FETCHES_DIR=os.environ["MOZ_FETCHES_DIR"] - ) - ), - "PATH": ( - diff --git a/src/firefox-patches/firefox_148_macos_sdk_override.patch b/src/firefox-patches/firefox_148_macos_sdk_override.patch new file mode 100644 index 000000000..204692572 --- /dev/null +++ b/src/firefox-patches/firefox_148_macos_sdk_override.patch @@ -0,0 +1,13 @@ +diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure +index 0fb4faa598072ccad47c376765a9433b40e27a6d..1fc128de1823048820ade9e24ff3b288defcf4ed 100644 +--- a/build/moz.configure/toolchain.configure ++++ b/build/moz.configure/toolchain.configure +@@ -233,7 +233,7 @@ with only_when(host_is_osx | target_is_osx): + ) + + def mac_sdk_min_version(): +- return "26.1" ++ return "26.0" + + @depends( + "--with-macos-sdk",