From 2c2b24a23074046462fed0a86131f6168a3f4b1d Mon Sep 17 00:00:00 2001 From: John Laxson Date: Fri, 18 Nov 2022 13:14:29 -0800 Subject: [PATCH 1/3] Correctly reference os-specific labels from central alias repo The current aliases hardcode the bazel host os, which does not work when cross compiling. --- python/private/toolchains_repo.bzl | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/python/private/toolchains_repo.bzl b/python/private/toolchains_repo.bzl index 282859a685..b99261cae3 100644 --- a/python/private/toolchains_repo.bzl +++ b/python/private/toolchains_repo.bzl @@ -83,26 +83,25 @@ def _resolved_interpreter_os_alias_impl(rctx): is_windows = (os_name == WINDOWS_NAME) python3_binary_path = "python.exe" if is_windows else "bin/python3" - # Base BUILD file for this repository. build_contents = """\ # Generated by python/repositories.bzl package(default_visibility = ["//visibility:public"]) +load("@rules_python//python:versions.bzl", "PLATFORMS", "gen_python_config_settings") +gen_python_config_settings() exports_files(["defs.bzl"]) -alias(name = "files", actual = "@{py_repository}_{host_platform}//:files") -alias(name = "includes", actual = "@{py_repository}_{host_platform}//:includes") -alias(name = "libpython", actual = "@{py_repository}_{host_platform}//:libpython") -alias(name = "py3_runtime", actual = "@{py_repository}_{host_platform}//:py3_runtime") -alias(name = "python_headers", actual = "@{py_repository}_{host_platform}//:python_headers") -alias(name = "python_runtimes", actual = "@{py_repository}_{host_platform}//:python_runtimes") -alias(name = "python3", actual = "@{py_repository}_{host_platform}//:{python3_binary_path}") +alias(name = "files", actual = select({{":" + item : "@{py_repository}_" + item + "//:files" for item in PLATFORMS.keys()}})) +alias(name = "includes", actual = select({{":" + item : "@{py_repository}_" + item + "//:includes" for item in PLATFORMS.keys()}})) +alias(name = "libpython", actual = select({{":" + item : "@{py_repository}_" + item + "//:libpython" for item in PLATFORMS.keys()}})) +alias(name = "py3_runtime", actual = select({{":" + item : "@{py_repository}_" + item + "//:py3_runtime" for item in PLATFORMS.keys()}})) +alias(name = "python_headers", actual = select({{":" + item : "@{py_repository}_" + item + "//:python_headers" for item in PLATFORMS.keys()}})) +alias(name = "python_runtimes", actual = select({{":" + item : "@{py_repository}_" + item + "//:python_runtimes" for item in PLATFORMS.keys()}})) +alias(name = "python3", actual = select({{":" + item : "@{py_repository}_" + item + "//:" + ("python.exe" if "windows" in item else "bin/python3") for item in PLATFORMS.keys()}})) """.format( py_repository = rctx.attr.user_repository_name, - host_platform = host_platform, - python3_binary_path = python3_binary_path, ) if not is_windows: build_contents += """\ -alias(name = "pip", actual = "@{py_repository}_{host_platform}//:bin/pip") +alias(name = "pip", actual = select({{":" + item : "@{py_repository}_" + item + "//:python_runtimes" for item in PLATFORMS.keys() if "windows" not in item}})) """.format( py_repository = rctx.attr.user_repository_name, host_platform = host_platform, From ed5f96cb19cd4dfd2477581a672507aac17b3106 Mon Sep 17 00:00:00 2001 From: John Laxson Date: Fri, 18 Nov 2022 13:15:49 -0800 Subject: [PATCH 2/3] Update toolchains_repo.bzl --- python/private/toolchains_repo.bzl | 1 + 1 file changed, 1 insertion(+) diff --git a/python/private/toolchains_repo.bzl b/python/private/toolchains_repo.bzl index b99261cae3..42a2c6969f 100644 --- a/python/private/toolchains_repo.bzl +++ b/python/private/toolchains_repo.bzl @@ -83,6 +83,7 @@ def _resolved_interpreter_os_alias_impl(rctx): is_windows = (os_name == WINDOWS_NAME) python3_binary_path = "python.exe" if is_windows else "bin/python3" + # Base BUILD file for this repository. build_contents = """\ # Generated by python/repositories.bzl package(default_visibility = ["//visibility:public"]) From fea8b016d2c96227f86d1ec2937a5a6a92d32959 Mon Sep 17 00:00:00 2001 From: Thulio Ferraz Assis <3149049+f0rmiga@users.noreply.github.com> Date: Mon, 21 Nov 2022 14:13:50 -0800 Subject: [PATCH 3/3] fix: remove spaces from key in dict --- python/private/toolchains_repo.bzl | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/python/private/toolchains_repo.bzl b/python/private/toolchains_repo.bzl index 42a2c6969f..43a2a56529 100644 --- a/python/private/toolchains_repo.bzl +++ b/python/private/toolchains_repo.bzl @@ -90,19 +90,19 @@ package(default_visibility = ["//visibility:public"]) load("@rules_python//python:versions.bzl", "PLATFORMS", "gen_python_config_settings") gen_python_config_settings() exports_files(["defs.bzl"]) -alias(name = "files", actual = select({{":" + item : "@{py_repository}_" + item + "//:files" for item in PLATFORMS.keys()}})) -alias(name = "includes", actual = select({{":" + item : "@{py_repository}_" + item + "//:includes" for item in PLATFORMS.keys()}})) -alias(name = "libpython", actual = select({{":" + item : "@{py_repository}_" + item + "//:libpython" for item in PLATFORMS.keys()}})) -alias(name = "py3_runtime", actual = select({{":" + item : "@{py_repository}_" + item + "//:py3_runtime" for item in PLATFORMS.keys()}})) -alias(name = "python_headers", actual = select({{":" + item : "@{py_repository}_" + item + "//:python_headers" for item in PLATFORMS.keys()}})) -alias(name = "python_runtimes", actual = select({{":" + item : "@{py_repository}_" + item + "//:python_runtimes" for item in PLATFORMS.keys()}})) -alias(name = "python3", actual = select({{":" + item : "@{py_repository}_" + item + "//:" + ("python.exe" if "windows" in item else "bin/python3") for item in PLATFORMS.keys()}})) +alias(name = "files", actual = select({{":" + item: "@{py_repository}_" + item + "//:files" for item in PLATFORMS.keys()}})) +alias(name = "includes", actual = select({{":" + item: "@{py_repository}_" + item + "//:includes" for item in PLATFORMS.keys()}})) +alias(name = "libpython", actual = select({{":" + item: "@{py_repository}_" + item + "//:libpython" for item in PLATFORMS.keys()}})) +alias(name = "py3_runtime", actual = select({{":" + item: "@{py_repository}_" + item + "//:py3_runtime" for item in PLATFORMS.keys()}})) +alias(name = "python_headers", actual = select({{":" + item: "@{py_repository}_" + item + "//:python_headers" for item in PLATFORMS.keys()}})) +alias(name = "python_runtimes", actual = select({{":" + item: "@{py_repository}_" + item + "//:python_runtimes" for item in PLATFORMS.keys()}})) +alias(name = "python3", actual = select({{":" + item: "@{py_repository}_" + item + "//:" + ("python.exe" if "windows" in item else "bin/python3") for item in PLATFORMS.keys()}})) """.format( py_repository = rctx.attr.user_repository_name, ) if not is_windows: build_contents += """\ -alias(name = "pip", actual = select({{":" + item : "@{py_repository}_" + item + "//:python_runtimes" for item in PLATFORMS.keys() if "windows" not in item}})) +alias(name = "pip", actual = select({{":" + item: "@{py_repository}_" + item + "//:python_runtimes" for item in PLATFORMS.keys() if "windows" not in item}})) """.format( py_repository = rctx.attr.user_repository_name, host_platform = host_platform,