From 2d9b87f10e910c3e7c22e8248a3119533b528d63 Mon Sep 17 00:00:00 2001 From: Mark Elliot <123787712+mark-thm@users.noreply.github.com> Date: Wed, 6 Mar 2024 16:41:19 -0500 Subject: [PATCH 1/8] Do not download non-local binaries --- multitool/private/multitool.bzl | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/multitool/private/multitool.bzl b/multitool/private/multitool.bzl index 10b08f9..90fbb89 100644 --- a/multitool/private/multitool.bzl +++ b/multitool/private/multitool.bzl @@ -24,6 +24,26 @@ def _check(condition, message): if not condition: fail(message) +def _match_os(rctx, os): + # rctx.os.name takes valeus from Java system property `os.name` + if os == "macos" and rctx.os.name.startswith("mac"): + return True + if os == "linux" and rctx.os.name == "linux": + return True + return False + +def _match_cpu(rctx, cpu): + # rctx.os.arch takes valeus from Java system property `os.arch` + if cpu == "x86_64" and rctx.os.arch == "x86_64": + return True + if cpu == "arm64" and rctx.os.arch == "aarch64": + return True + return False + +def _match_local(rctx, os, cpu): + "Returns True iff os and cpu match local environment" + return _match_os(rctx, os) and _match_cpu(rctx, cpu) + def _multitool_hub_impl(rctx): tools = {} for lockfile in rctx.attr.lockfiles: @@ -43,6 +63,9 @@ def _multitool_hub_impl(rctx): _check(binary["os"] in ["linux", "macos"], "Unknown os '{os}'".format(os = binary["os"])) _check(binary["cpu"] in ["x86_64", "arm64"], "Unknown cpu '{cpu}'".format(cpu = binary["cpu"])) + if not _match_local(rctx, binary["os"], binary["cpu"]): + continue + target_executable = "tools/{tool_name}/{os}_{cpu}_executable".format( tool_name = tool_name, cpu = binary["cpu"], From 1f76ddd11b36843bd7cb60dbdf335f8cb8b68db9 Mon Sep 17 00:00:00 2001 From: Mark Elliot <123787712+mark-thm@users.noreply.github.com> Date: Wed, 6 Mar 2024 16:44:47 -0500 Subject: [PATCH 2/8] casing --- multitool/private/multitool.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/multitool/private/multitool.bzl b/multitool/private/multitool.bzl index 90fbb89..21fe5bc 100644 --- a/multitool/private/multitool.bzl +++ b/multitool/private/multitool.bzl @@ -28,7 +28,7 @@ def _match_os(rctx, os): # rctx.os.name takes valeus from Java system property `os.name` if os == "macos" and rctx.os.name.startswith("mac"): return True - if os == "linux" and rctx.os.name == "linux": + if os == "linux" and rctx.os.name.lower() == "linux": return True return False From cc51ab2b98264b4a5cf0cbc8d546adb26ceea12a Mon Sep 17 00:00:00 2001 From: Mark Elliot <123787712+mark-thm@users.noreply.github.com> Date: Wed, 6 Mar 2024 16:45:19 -0500 Subject: [PATCH 3/8] docs --- multitool/private/multitool.bzl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/multitool/private/multitool.bzl b/multitool/private/multitool.bzl index 21fe5bc..85880e7 100644 --- a/multitool/private/multitool.bzl +++ b/multitool/private/multitool.bzl @@ -25,7 +25,7 @@ def _check(condition, message): fail(message) def _match_os(rctx, os): - # rctx.os.name takes valeus from Java system property `os.name` + # rctx.os.name takes values from Java system property `os.name` if os == "macos" and rctx.os.name.startswith("mac"): return True if os == "linux" and rctx.os.name.lower() == "linux": @@ -33,7 +33,7 @@ def _match_os(rctx, os): return False def _match_cpu(rctx, cpu): - # rctx.os.arch takes valeus from Java system property `os.arch` + # rctx.os.arch takes values from Java system property `os.arch` if cpu == "x86_64" and rctx.os.arch == "x86_64": return True if cpu == "arm64" and rctx.os.arch == "aarch64": From a718fce54a64391c491f1afc568734bc1d7d1827 Mon Sep 17 00:00:00 2001 From: Mark Elliot <123787712+mark-thm@users.noreply.github.com> Date: Wed, 6 Mar 2024 16:52:15 -0500 Subject: [PATCH 4/8] more --- multitool/private/multitool.bzl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/multitool/private/multitool.bzl b/multitool/private/multitool.bzl index 85880e7..ba23cdb 100644 --- a/multitool/private/multitool.bzl +++ b/multitool/private/multitool.bzl @@ -28,13 +28,13 @@ def _match_os(rctx, os): # rctx.os.name takes values from Java system property `os.name` if os == "macos" and rctx.os.name.startswith("mac"): return True - if os == "linux" and rctx.os.name.lower() == "linux": + if os == "linux" and rctx.os.name == "Linux": return True return False def _match_cpu(rctx, cpu): # rctx.os.arch takes values from Java system property `os.arch` - if cpu == "x86_64" and rctx.os.arch == "x86_64": + if cpu == "x86_64" and rctx.os.arch in ["x86_64", "amd64"]: return True if cpu == "arm64" and rctx.os.arch == "aarch64": return True From afc9b5e36b66ebca3e8c7c0f32c48340f9aaae60 Mon Sep 17 00:00:00 2001 From: Mark Elliot <123787712+mark-thm@users.noreply.github.com> Date: Wed, 6 Mar 2024 16:54:59 -0500 Subject: [PATCH 5/8] debug --- multitool/private/multitool.bzl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/multitool/private/multitool.bzl b/multitool/private/multitool.bzl index ba23cdb..2bee4da 100644 --- a/multitool/private/multitool.bzl +++ b/multitool/private/multitool.bzl @@ -30,6 +30,7 @@ def _match_os(rctx, os): return True if os == "linux" and rctx.os.name == "Linux": return True + print("Unknown OS " + os) return False def _match_cpu(rctx, cpu): @@ -38,6 +39,7 @@ def _match_cpu(rctx, cpu): return True if cpu == "arm64" and rctx.os.arch == "aarch64": return True + print("Unknown CPU " + cpu) return False def _match_local(rctx, os, cpu): From 41e218fe1ad14a6ad20c931975cd00f77220c9ae Mon Sep 17 00:00:00 2001 From: Mark Elliot <123787712+mark-thm@users.noreply.github.com> Date: Wed, 6 Mar 2024 16:56:10 -0500 Subject: [PATCH 6/8] debug --- multitool/private/multitool.bzl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/multitool/private/multitool.bzl b/multitool/private/multitool.bzl index 2bee4da..218e674 100644 --- a/multitool/private/multitool.bzl +++ b/multitool/private/multitool.bzl @@ -30,7 +30,7 @@ def _match_os(rctx, os): return True if os == "linux" and rctx.os.name == "Linux": return True - print("Unknown OS " + os) + print("Unknown OS " + rctx.os.name) return False def _match_cpu(rctx, cpu): @@ -39,7 +39,7 @@ def _match_cpu(rctx, cpu): return True if cpu == "arm64" and rctx.os.arch == "aarch64": return True - print("Unknown CPU " + cpu) + print("Unknown CPU " + rctx.os.arch) return False def _match_local(rctx, os, cpu): From 46572ade65e4945998d4f229b21b2f5d9beede59 Mon Sep 17 00:00:00 2001 From: Mark Elliot <123787712+mark-thm@users.noreply.github.com> Date: Wed, 6 Mar 2024 16:57:17 -0500 Subject: [PATCH 7/8] ugh --- multitool/private/multitool.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/multitool/private/multitool.bzl b/multitool/private/multitool.bzl index 218e674..2db6f90 100644 --- a/multitool/private/multitool.bzl +++ b/multitool/private/multitool.bzl @@ -28,7 +28,7 @@ def _match_os(rctx, os): # rctx.os.name takes values from Java system property `os.name` if os == "macos" and rctx.os.name.startswith("mac"): return True - if os == "linux" and rctx.os.name == "Linux": + if os == "linux" and rctx.os.name.lower() == "linux": return True print("Unknown OS " + rctx.os.name) return False From fbba269ff302152a7c170bde297185956b211a9d Mon Sep 17 00:00:00 2001 From: Mark Elliot <123787712+mark-thm@users.noreply.github.com> Date: Wed, 6 Mar 2024 16:59:08 -0500 Subject: [PATCH 8/8] no debug --- multitool/private/multitool.bzl | 2 -- 1 file changed, 2 deletions(-) diff --git a/multitool/private/multitool.bzl b/multitool/private/multitool.bzl index 2db6f90..ec34b3d 100644 --- a/multitool/private/multitool.bzl +++ b/multitool/private/multitool.bzl @@ -30,7 +30,6 @@ def _match_os(rctx, os): return True if os == "linux" and rctx.os.name.lower() == "linux": return True - print("Unknown OS " + rctx.os.name) return False def _match_cpu(rctx, cpu): @@ -39,7 +38,6 @@ def _match_cpu(rctx, cpu): return True if cpu == "arm64" and rctx.os.arch == "aarch64": return True - print("Unknown CPU " + rctx.os.arch) return False def _match_local(rctx, os, cpu):