From: uazo Date: Fri, 2 May 2025 14:16:01 +0000 Subject: Force use vpython3 for some scripts Some scripts need the latest version of python not available in the docker container. The patch forces the use of python in the virtual environment in the version required by the chromium build tools. License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- components/metrics/generate_expired_histograms_array.gni | 7 +++++-- components/variations/field_trial_config/BUILD.gn | 4 +++- tools/grit/grit_rule.gni | 4 +++- tools/json_to_struct/json_to_struct.gni | 4 +++- tools/metrics/generate_allowlist_from_histograms_file.gni | 5 +++-- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/components/metrics/generate_expired_histograms_array.gni b/components/metrics/generate_expired_histograms_array.gni --- a/components/metrics/generate_expired_histograms_array.gni +++ b/components/metrics/generate_expired_histograms_array.gni @@ -30,7 +30,7 @@ template("generate_expired_histograms_array") { action(target_name) { header_filename = "$target_gen_dir/" + invoker.header_filename - script = "//tools/metrics/histograms/generate_expired_histograms_array.py" + script = "//build/gn_run_binary.py" outputs = [ header_filename ] inputs = histograms_xml_files @@ -38,7 +38,10 @@ template("generate_expired_histograms_array") { major_branch_date_filepath = invoker.major_branch_date_filepath milestone_filepath = invoker.milestone_filepath - args = [] + args = [ + rebase_path("//third_party/depot_tools/vpython3"), + rebase_path("//tools/metrics/histograms/generate_expired_histograms_array.py") + ] if (defined(invoker.namespace) && invoker.namespace != "") { args += [ "-n" + invoker.namespace ] diff --git a/components/variations/field_trial_config/BUILD.gn b/components/variations/field_trial_config/BUILD.gn --- a/components/variations/field_trial_config/BUILD.gn +++ b/components/variations/field_trial_config/BUILD.gn @@ -5,7 +5,7 @@ import("//tools/json_to_struct/json_to_struct.gni") action("field_trial_testing_config_action") { visibility = [ ":field_trial_config" ] - script = "//tools/variations/fieldtrial_to_struct.py" + script = "//build/gn_run_binary.py" source = "//testing/variations/fieldtrial_testing_config.json" inputs = JSON_TO_STRUCT_FILES + [ source ] @@ -22,6 +22,8 @@ action("field_trial_testing_config_action") { } args = [ + rebase_path("//third_party/depot_tools/vpython3"), + rebase_path("//tools/variations/fieldtrial_to_struct.py"), rebase_path(source, root_build_dir), "--destbase=" + rebase_path(target_gen_dir, root_build_dir), "--namespace=variations", diff --git a/tools/grit/grit_rule.gni b/tools/grit/grit_rule.gni --- a/tools/grit/grit_rule.gni +++ b/tools/grit/grit_rule.gni @@ -154,7 +154,7 @@ template("grit") { _grit_custom_target = target_name + "_grit" action(_grit_custom_target) { - script = "//tools/grit/grit.py" + script = "//build/gn_run_binary.py" inputs = [ invoker.source ] testonly = defined(invoker.testonly) && invoker.testonly @@ -197,6 +197,8 @@ template("grit") { } args = [ + rebase_path("//third_party/depot_tools/vpython3"), + rebase_path("//tools/grit/grit.py"), "-i", _rebased_source_path, "build", diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json_to_struct.gni --- a/tools/json_to_struct/json_to_struct.gni +++ b/tools/json_to_struct/json_to_struct.gni @@ -41,7 +41,7 @@ template("json_to_struct") { action(action_name) { visibility = [ ":$source_set_name" ] - script = "//tools/json_to_struct/json_to_struct.py" + script = "//build/gn_run_binary.py" inputs = JSON_TO_STRUCT_FILES + [ invoker.source, @@ -56,6 +56,8 @@ template("json_to_struct") { ] args = [ + rebase_path("//third_party/depot_tools/vpython3"), + rebase_path("//tools/json_to_struct/json_to_struct.py"), rebase_path(invoker.source, root_build_dir), "--destbase=" + rebase_path(out_dir, root_build_dir), "--namespace=" + invoker.namespace, diff --git a/tools/metrics/generate_allowlist_from_histograms_file.gni b/tools/metrics/generate_allowlist_from_histograms_file.gni --- a/tools/metrics/generate_allowlist_from_histograms_file.gni +++ b/tools/metrics/generate_allowlist_from_histograms_file.gni @@ -26,12 +26,13 @@ template("generate_allowlist_from_histograms_file") { action(target_name) { output_file = "$target_gen_dir/" + invoker.output_file - script = - "//tools/metrics/histograms/generate_allowlist_from_histograms_file.py" + script = "//build/gn_run_binary.py" outputs = [ output_file ] sources = [ invoker.input_xml_file ] args = [ + rebase_path("//third_party/depot_tools/vpython3"), + rebase_path("//tools/metrics/histograms/generate_allowlist_from_histograms_file.py"), "--allow_list_name=" + invoker.allow_list_name, "--namespace=" + invoker.namespace, "--tag=" + invoker.tag, --