Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -326,10 +326,11 @@ ripunzip_archive = use_repo_rule("//misc/ripunzip:ripunzip.bzl", "ripunzip_archi
# go to https://github.com/GoogleChrome/ripunzip/releases to find latest version and corresponding sha256s
ripunzip_archive(
name = "ripunzip",
sha256_linux = "71482d7a7e4ea9176d5596161c49250c34b136b157c45f632b1111323fbfc0de",
sha256_macos_arm = "604194ab13f0aba3972995d995f11002b8fc285c8170401fcd46655065df20c9",
sha256_macos_intel = "65367b94fd579d93d46f2d2595cc4c9a60cfcf497e3c824f9d1a7b80fa8bd38a",
sha256_windows = "ac3874075def2b9e5074a3b5945005ab082cc6e689e1de658da8965bc23e643e",
sha256_linux_arm64 = "a282740ef376ff8dc0de3c589b7457598db15cc045b7daa688f15531612e0bbe",
sha256_linux_x64 = "71482d7a7e4ea9176d5596161c49250c34b136b157c45f632b1111323fbfc0de",
sha256_macos_arm64 = "604194ab13f0aba3972995d995f11002b8fc285c8170401fcd46655065df20c9",
sha256_macos_x64 = "65367b94fd579d93d46f2d2595cc4c9a60cfcf497e3c824f9d1a7b80fa8bd38a",
sha256_windows_x64 = "ac3874075def2b9e5074a3b5945005ab082cc6e689e1de658da8965bc23e643e",
version = "2.0.4",
)

Expand Down
39 changes: 26 additions & 13 deletions misc/ripunzip/ripunzip.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,24 @@ def _ripunzip_archive_impl(repository_ctx):
url_prefix = "https://github.com/GoogleChrome/ripunzip/releases/download/v%s" % version
build_file = Label("//misc/ripunzip:BUILD.ripunzip.bazel")
if "linux" in repository_ctx.os.name:
arch = repository_ctx.os.arch
if arch == "aarch64":
deb_arch = "arm64"
sha256 = repository_ctx.attr.sha256_linux_arm64
canonical_id = "ripunzip-linux-arm64"
elif arch in ("x86_64", "amd64"):
deb_arch = "amd64"
sha256 = repository_ctx.attr.sha256_linux_x64
canonical_id = "ripunzip-linux-x64"
else:
fail("Unsupported Linux architecture: %s" % arch)

# ripunzip only provides a deb package for Linux: we fish the binary out of it
# a deb archive contains a data.tar.xz one which contains the files to be installed under usr/bin
repository_ctx.download_and_extract(
url = "%s/ripunzip_%s-1_amd64.deb" % (url_prefix, version),
sha256 = repository_ctx.attr.sha256_linux,
canonical_id = "ripunzip-linux",
url = "%s/ripunzip_%s-1_%s.deb" % (url_prefix, version, deb_arch),
sha256 = sha256,
canonical_id = canonical_id,
output = "deb",
)
repository_ctx.extract(
Expand All @@ -19,20 +31,20 @@ def _ripunzip_archive_impl(repository_ctx):
elif "windows" in repository_ctx.os.name:
repository_ctx.download_and_extract(
url = "%s/ripunzip_v%s_x86_64-pc-windows-msvc.zip" % (url_prefix, version),
canonical_id = "ripunzip-windows",
sha256 = repository_ctx.attr.sha256_windows,
canonical_id = "ripunzip-windows-x64",
sha256 = repository_ctx.attr.sha256_windows_x64,
output = "bin",
)
elif "mac os" in repository_ctx.os.name:
arch = repository_ctx.os.arch
if arch == "x86_64":
suffix = "x86_64-apple-darwin"
sha256 = repository_ctx.attr.sha256_macos_intel
canonical_id = "ripunzip-macos-intel"
sha256 = repository_ctx.attr.sha256_macos_x64
canonical_id = "ripunzip-macos-x64"
elif arch == "aarch64":
suffix = "aarch64-apple-darwin"
sha256 = repository_ctx.attr.sha256_macos_arm
canonical_id = "ripunzip-macos-arm"
sha256 = repository_ctx.attr.sha256_macos_arm64
canonical_id = "ripunzip-macos-arm64"
else:
fail("Unsupported macOS architecture: %s" % arch)
repository_ctx.download_and_extract(
Expand All @@ -51,9 +63,10 @@ ripunzip_archive = repository_rule(
doc = "Downloads a prebuilt ripunzip binary for the host platform from https://github.com/GoogleChrome/ripunzip/releases",
attrs = {
"version": attr.string(mandatory = True),
"sha256_linux": attr.string(mandatory = True),
"sha256_windows": attr.string(mandatory = True),
"sha256_macos_intel": attr.string(mandatory = True),
"sha256_macos_arm": attr.string(mandatory = True),
"sha256_linux_x64": attr.string(mandatory = True),
"sha256_linux_arm64": attr.string(mandatory = True),
"sha256_windows_x64": attr.string(mandatory = True),
"sha256_macos_x64": attr.string(mandatory = True),
"sha256_macos_arm64": attr.string(mandatory = True),
},
)
Loading