From e1494ddc4776cbf3204ede868f04e4c3f8249943 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Thu, 6 Oct 2022 04:27:28 -0700 Subject: [PATCH] chore: cherry-pick c83640db21b5 from chromium (#35924) * chore: cherry-pick c83640db21b5 from chromium * chore: update patches Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com> --- patches/chromium/.patches | 1 + .../chromium/cherry-pick-c83640db21b5.patch | 122 ++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 patches/chromium/cherry-pick-c83640db21b5.patch diff --git a/patches/chromium/.patches b/patches/chromium/.patches index 3d99ad54efc2..a7692e6e097b 100644 --- a/patches/chromium/.patches +++ b/patches/chromium/.patches @@ -121,3 +121,4 @@ disable_optimization_guide_for_preconnect_feature.patch fix_return_v8_value_from_localframe_requestexecutescript.patch create_browser_v8_snapshot_file_name_fuse.patch feat_ensure_mas_builds_of_the_same_application_can_use_safestorage.patch +cherry-pick-c83640db21b5.patch diff --git a/patches/chromium/cherry-pick-c83640db21b5.patch b/patches/chromium/cherry-pick-c83640db21b5.patch new file mode 100644 index 000000000000..723f455e3fa9 --- /dev/null +++ b/patches/chromium/cherry-pick-c83640db21b5.patch @@ -0,0 +1,122 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Samuel Attard +Date: Wed, 5 Oct 2022 06:03:23 +0000 +Subject: build: set DTSDKBuild correctly when generating plist files + +Currently we set DTSDKBuild to the version of the SDK used to build +Chromium. This value is supposed to be the build version (this is +what xcode sets it to for instance). We read this value out of the +SDK directly and use it instead. + +Change-Id: Ieb7990f13095683ad8c026f027b2605ae39523a4 + +diff --git a/build/config/mac/mac_sdk.gni b/build/config/mac/mac_sdk.gni +index 98bedab98c2cd808387bca779221fab7297b37ee..d39350ed74d5c9493006266375664a9808e97af7 100644 +--- a/build/config/mac/mac_sdk.gni ++++ b/build/config/mac/mac_sdk.gni +@@ -40,6 +40,11 @@ declare_args() { + # will fail. + mac_sdk_official_version = "12.3" + ++ # The SDK build version used when making official builds. This is a single ++ # exact version found at "System/Library/CoreServices/SystemVersion.plist" ++ # inside the SDK. ++ mac_sdk_official_build_version = "21E226" ++ + # Production builds should use hermetic Xcode. If you want to do production + # builds with system Xcode to test new SDKs, set this. + # Don't set this on any bots. +@@ -103,11 +108,13 @@ if (use_system_xcode) { + find_sdk_args = [ + "--print_sdk_path", + "--print_bin_path", ++ "--print_sdk_build", + mac_sdk_min, + ] + find_sdk_lines = + exec_script("//build/mac/find_sdk.py", find_sdk_args, "list lines") +- mac_sdk_version = find_sdk_lines[2] ++ mac_sdk_version = find_sdk_lines[3] ++ mac_sdk_build_version = find_sdk_lines[2] + if (mac_sdk_path == "") { + mac_sdk_path = find_sdk_lines[0] + mac_bin_path = find_sdk_lines[1] +@@ -116,6 +123,7 @@ if (use_system_xcode) { + } + } else { + mac_sdk_version = mac_sdk_official_version ++ mac_sdk_build_version = mac_sdk_official_build_version + _dev = _hermetic_xcode_path + "/Contents/Developer" + _sdk = "MacOSX${mac_sdk_version}.sdk" + mac_sdk_path = _dev + "/Platforms/MacOSX.platform/Developer/SDKs/$_sdk" +diff --git a/build/config/mac/rules.gni b/build/config/mac/rules.gni +index fbd84cc68bf6b19cf99d4010331bb469a1d33194..f613a049bdfa643d01b05e3cfcae72dc5ad9da97 100644 +--- a/build/config/mac/rules.gni ++++ b/build/config/mac/rules.gni +@@ -41,7 +41,7 @@ template("mac_info_plist") { + apple_info_plist(target_name) { + format = "xml1" + extra_substitutions = [ +- "MAC_SDK_BUILD=$mac_sdk_version", ++ "MAC_SDK_BUILD=$mac_sdk_build_version", + "MAC_SDK_NAME=$mac_sdk_name$mac_sdk_version", + "MACOSX_DEPLOYMENT_TARGET=$mac_deployment_target", + "CHROMIUM_MIN_SYSTEM_VERSION=$mac_min_system_version", +diff --git a/build/mac/find_sdk.py b/build/mac/find_sdk.py +index bb36874fd44d441d07c9f150288c1d21b215d550..50c1e3c1db90ede392ba6f7903fe48e8e5de2d77 100755 +--- a/build/mac/find_sdk.py ++++ b/build/mac/find_sdk.py +@@ -24,6 +24,7 @@ Sample Output: + from __future__ import print_function + + import os ++import plistlib + import re + import subprocess + import sys +@@ -51,6 +52,9 @@ def main(): + parser.add_option("--print_bin_path", + action="store_true", dest="print_bin_path", default=False, + help="Additionally print the path the toolchain bin dir.") ++ parser.add_option("--print_sdk_build", ++ action="store_true", dest="print_sdk_build", default=False, ++ help="Additionally print the build version of the SDK.") + options, args = parser.parse_args() + if len(args) != 1: + parser.error('Please specify a minimum SDK version') +@@ -80,20 +84,30 @@ def main(): + if not sdks: + raise Exception('No %s+ SDK found' % min_sdk_version) + best_sdk = sorted(sdks, key=parse_version)[0] ++ sdk_name = 'MacOSX' + best_sdk + '.sdk' ++ sdk_path = os.path.join(sdk_dir, sdk_name) + + if options.print_sdk_path: +- sdk_name = 'MacOSX' + best_sdk + '.sdk' +- print(os.path.join(sdk_dir, sdk_name)) ++ print(sdk_path) + + if options.print_bin_path: + bin_path = 'Toolchains/XcodeDefault.xctoolchain/usr/bin/' + print(os.path.join(dev_dir, bin_path)) + +- return best_sdk ++ if options.print_sdk_build: ++ system_version_plist = os.path.join(sdk_path, ++ 'System/Library/CoreServices/SystemVersion.plist') ++ with open(system_version_plist, 'rb') as f: ++ system_version_info = plistlib.load(f) ++ if 'ProductBuildVersion' not in system_version_info: ++ raise Exception('Failed to determine ProductBuildVersion' + ++ 'for SDK at path %s' % system_version_plist) ++ print(system_version_info['ProductBuildVersion']) ++ ++ print(best_sdk) + + + if __name__ == '__main__': + if sys.platform != 'darwin': + raise Exception("This script only runs on Mac") +- print(main()) +- sys.exit(0) ++ sys.exit(main())