Skip to content

Commit 0c87204

Browse files
committed
Use certifi certs for buck download
1 parent ae2d822 commit 0c87204

File tree

1 file changed

+14
-16
lines changed

1 file changed

+14
-16
lines changed

tools/cmake/resolve_buck.py

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@
77
# LICENSE file in the root directory of this source tree.
88

99
import argparse
10+
import certifi
1011
import os
1112
import platform
13+
import ssl
1214
import stat
1315
import sys
1416
import urllib.request
@@ -201,27 +203,23 @@ def resolve_buck2(args: argparse.Namespace) -> Union[str, int]:
201203
if os.path.isfile(buck2_local_path):
202204
return buck2_local_path
203205

204-
buck2_archive_url = f"https://github.com/facebook/buck2/releases/download/{target_buck_version}/{buck_info.archive_name}"
206+
buck2_archive_url = f"https://github.com/facebook/buck2/releases/download/{target_buck_version}/{buck_info.archive_name}"
205207

206-
try:
207-
print(f"Downloading buck2 from {buck2_archive_url}...", file=sys.stderr)
208-
archive_file, _ = urllib.request.urlretrieve(buck2_archive_url)
208+
print(f"Downloading buck2 from {buck2_archive_url}...", file=sys.stderr)
209+
ssl_context = ssl.create_default_context(cafile=certifi.where())
209210

210-
# Extract and chmod.
211-
with open(archive_file, "rb") as f:
212-
data = f.read()
213-
decompressed_bytes = zstd.decompress(data)
211+
with urllib.request.urlopen(buck2_archive_url, context=ssl_context) as request:
212+
# Extract and chmod.
213+
data = request.read()
214+
decompressed_bytes = zstd.decompress(data)
214215

215-
with open(buck2_local_path, "wb") as f:
216-
f.write(decompressed_bytes)
216+
with open(buck2_local_path, "wb") as f:
217+
f.write(decompressed_bytes)
217218

218-
file_stat = os.stat(buck2_local_path)
219-
os.chmod(buck2_local_path, file_stat.st_mode | stat.S_IEXEC)
220-
finally:
221-
os.remove(archive_file)
222-
223-
return buck2_local_path
219+
file_stat = os.stat(buck2_local_path)
220+
os.chmod(buck2_local_path, file_stat.st_mode | stat.S_IEXEC)
224221

222+
return buck2_local_path
225223

226224
def main():
227225
args = parse_args()

0 commit comments

Comments
 (0)