From 952624e2b269b8c5100de33dae31939a6a7f62a3 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Thu, 22 Aug 2024 21:34:14 -0400 Subject: [PATCH 1/2] [Build] Support windows in resolve_buck.py Add Windows support to BUCK_PLATFORM_MAP. Also use urllib.request.urlretrieve directly to work around PermissionError on Windows. For #4661 --- build/resolve_buck.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/build/resolve_buck.py b/build/resolve_buck.py index d70fe94b415..804ab22a033 100644 --- a/build/resolve_buck.py +++ b/build/resolve_buck.py @@ -11,7 +11,6 @@ import platform import stat import sys -import tempfile import urllib.request from dataclasses import dataclass @@ -85,6 +84,12 @@ class BuckInfo: archive_name="buck2-x86_64-apple-darwin.zst", target_versions=["3eb1ae97ea963086866b4d2d9ffa966d"], ), + ("windows", "x86_64"): BuckInfo( + archive_name="buck2-x86_64-pc-windows-msvc.exe.zst", + target_versions=[ + "bf1685c4c4ddd9de4592b5a955cb7326fd01e6c4d5f561643422bed961a17401" + ], + ), } @@ -135,6 +140,8 @@ def resolve_buck2(args: argparse.Namespace) -> Union[str, int]: os_family = "linux" elif sys.platform.startswith("darwin"): os_family = "darwin" + elif sys.platform.startswith("win"): + os_family = "windows" platform_key = (os_family, arch) if platform_key not in BUCK_PLATFORM_MAP: @@ -193,12 +200,12 @@ def resolve_buck2(args: argparse.Namespace) -> Union[str, int]: buck2_archive_url = f"https://github.com/facebook/buck2/releases/download/{target_buck_version}/{buck_info.archive_name}" - with tempfile.NamedTemporaryFile() as archive_file: + try: print(f"Downloading buck2 from {buck2_archive_url}...", file=sys.stderr) - urllib.request.urlretrieve(buck2_archive_url, archive_file.name) + archive_file, _ = urllib.request.urlretrieve(buck2_archive_url) # Extract and chmod. - with open(archive_file.name, "rb") as f: + with open(archive_file, "rb") as f: data = f.read() decompressed_bytes = zstd.decompress(data) @@ -207,6 +214,8 @@ def resolve_buck2(args: argparse.Namespace) -> Union[str, int]: file_stat = os.stat(buck2_local_path) os.chmod(buck2_local_path, file_stat.st_mode | stat.S_IEXEC) + finally: + os.remove(archive_file) return buck2_local_path From 86429cade82ed54d56cb916ab06eb5e2f7bccee9 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Wed, 8 Jan 2025 09:31:12 -0500 Subject: [PATCH 2/2] Update buck2 to2024-12-16 --- build/resolve_buck.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/resolve_buck.py b/build/resolve_buck.py index 804ab22a033..1ba2c131ca0 100644 --- a/build/resolve_buck.py +++ b/build/resolve_buck.py @@ -87,7 +87,7 @@ class BuckInfo: ("windows", "x86_64"): BuckInfo( archive_name="buck2-x86_64-pc-windows-msvc.exe.zst", target_versions=[ - "bf1685c4c4ddd9de4592b5a955cb7326fd01e6c4d5f561643422bed961a17401" + "c7d378f3f307e9590f0b29a5f7f1b21b8e784f4e4bd30a0160b2a69df50d2ee0" ], ), }