From e8eaecbd64f1749cde7bf376f2076096274e7dfb Mon Sep 17 00:00:00 2001 From: Andrzej J Skalski Date: Tue, 16 Dec 2025 22:02:14 +0100 Subject: [PATCH 1/6] fix: SRI standard does not allow multiple hashes of the same type. Without this change, Please does not work with Buildbarn --- src/parse/internal.tmpl | 7 ++----- src/parse/internal_package.go | 21 +++++++++++++++++++-- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/parse/internal.tmpl b/src/parse/internal.tmpl index f600f8fb3..d41e6672d 100644 --- a/src/parse/internal.tmpl +++ b/src/parse/internal.tmpl @@ -4,11 +4,7 @@ remote_file( out = "arcat", binary = True, hashes = [ - "6af2cf108592535701aa9395f3a5deeb48a5dfbe8174a8ebe3d56bb93de2c255", # darwin_amd64 - "5070ef05d14c66a85d438f400c6ff734a23833929775d6824b69207b704034bf", # darwin_arm64 - "05ad6ac45be3a4ca1238bb1bd09207a596f8ff5f885415f8df4ff2dc849fa04e", # freebsd_amd64 - "aec85425355291e515cd10ac0addec3a5bc9e05c9d07af01aca8c34aaf0f1222", # linux_amd64 - "8266cb95cc84b23642bca6567f8b4bd18de399c887cb5845ab6a901d0dba54d2", # linux_arm64 + "{{ .ArcatHash }}", ], visibility = ["PUBLIC"], ) @@ -29,3 +25,4 @@ genrule( binary = True, ) {{ end }} + diff --git a/src/parse/internal_package.go b/src/parse/internal_package.go index c2d77bd13..189199a08 100644 --- a/src/parse/internal_package.go +++ b/src/parse/internal_package.go @@ -27,15 +27,31 @@ func GetInternalPackage(config *core.Configuration) (string, error) { url = fmt.Sprintf("%s/%s_%s/%s/please_tools_%s.tar.xz", config.Please.DownloadLocation, runtime.GOOS, runtime.GOARCH, version.PleaseVersion, version.PleaseVersion) } + arcatHash := "" + switch fmt.Sprintf("%s_%s", config.Build.Arch.OS, config.Build.Arch.Arch) { + case "darwin_amd64": + arcatHash = "6af2cf108592535701aa9395f3a5deeb48a5dfbe8174a8ebe3d56bb93de2c255" + case "darwin_arm64": + arcatHash = "5070ef05d14c66a85d438f400c6ff734a23833929775d6824b69207b704034bf" + case "freebsd_amd64": + arcatHash = "05ad6ac45be3a4ca1238bb1bd09207a596f8ff5f885415f8df4ff2dc849fa04e" + case "linux_amd64": + arcatHash = "aec85425355291e515cd10ac0addec3a5bc9e05c9d07af01aca8c34aaf0f1222" + case "linux_arm64": + arcatHash = "8266cb95cc84b23642bca6567f8b4bd18de399c887cb5845ab6a901d0dba54d2" + } + data := struct { - ToolsURL string - Tools []string + ToolsURL string + Tools []string + ArcatHash string }{ ToolsURL: url, Tools: []string{ "build_langserver", "please_sandbox", }, + ArcatHash: arcatHash, } var buf bytes.Buffer @@ -44,3 +60,4 @@ func GetInternalPackage(config *core.Configuration) (string, error) { } return buf.String(), nil } + From 48b5f573d4e4097a2d30bdbf622d306163afd949 Mon Sep 17 00:00:00 2001 From: Andrzej J Skalski Date: Mon, 2 Feb 2026 19:13:54 +0100 Subject: [PATCH 2/6] applied suggestions from review --- src/parse/internal_package.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/parse/internal_package.go b/src/parse/internal_package.go index 189199a08..900492a1c 100644 --- a/src/parse/internal_package.go +++ b/src/parse/internal_package.go @@ -28,7 +28,7 @@ func GetInternalPackage(config *core.Configuration) (string, error) { } arcatHash := "" - switch fmt.Sprintf("%s_%s", config.Build.Arch.OS, config.Build.Arch.Arch) { + switch fmt.Sprintf("%s_%s", runtime.GOOS, runtime.GOARCH) { case "darwin_amd64": arcatHash = "6af2cf108592535701aa9395f3a5deeb48a5dfbe8174a8ebe3d56bb93de2c255" case "darwin_arm64": @@ -41,6 +41,10 @@ func GetInternalPackage(config *core.Configuration) (string, error) { arcatHash = "8266cb95cc84b23642bca6567f8b4bd18de399c887cb5845ab6a901d0dba54d2" } + if arcatHash == "" { + return "", fmt.Errorf("arcat tool not supported for platform: %s_%s", runtime.GOOS, runtime.GOARCH) + } + data := struct { ToolsURL string Tools []string @@ -60,4 +64,3 @@ func GetInternalPackage(config *core.Configuration) (string, error) { } return buf.String(), nil } - From cfaafb5e0d9fa5d34e65556d234fa541cfd0a5b8 Mon Sep 17 00:00:00 2001 From: Andrzej J Skalski Date: Mon, 2 Feb 2026 19:18:23 +0100 Subject: [PATCH 3/6] added a comment, moved the error message to 'default' --- src/parse/internal.tmpl | 2 +- src/parse/internal_package.go | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/parse/internal.tmpl b/src/parse/internal.tmpl index d41e6672d..90cfe6b67 100644 --- a/src/parse/internal.tmpl +++ b/src/parse/internal.tmpl @@ -4,7 +4,7 @@ remote_file( out = "arcat", binary = True, hashes = [ - "{{ .ArcatHash }}", + "{{ .ArcatHash }}", # defined in internal_package.go ], visibility = ["PUBLIC"], ) diff --git a/src/parse/internal_package.go b/src/parse/internal_package.go index 900492a1c..e7cef09de 100644 --- a/src/parse/internal_package.go +++ b/src/parse/internal_package.go @@ -39,9 +39,7 @@ func GetInternalPackage(config *core.Configuration) (string, error) { arcatHash = "aec85425355291e515cd10ac0addec3a5bc9e05c9d07af01aca8c34aaf0f1222" case "linux_arm64": arcatHash = "8266cb95cc84b23642bca6567f8b4bd18de399c887cb5845ab6a901d0dba54d2" - } - - if arcatHash == "" { + default: return "", fmt.Errorf("arcat tool not supported for platform: %s_%s", runtime.GOOS, runtime.GOARCH) } From 803c8fa7d0bd27c4eddb67c399454b92c178fb44 Mon Sep 17 00:00:00 2001 From: Andrzej J Skalski Date: Wed, 4 Feb 2026 16:17:09 +0100 Subject: [PATCH 4/6] fix: making linter happy --- src/parse/internal_package.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/parse/internal_package.go b/src/parse/internal_package.go index e7cef09de..3c5daac08 100644 --- a/src/parse/internal_package.go +++ b/src/parse/internal_package.go @@ -27,7 +27,7 @@ func GetInternalPackage(config *core.Configuration) (string, error) { url = fmt.Sprintf("%s/%s_%s/%s/please_tools_%s.tar.xz", config.Please.DownloadLocation, runtime.GOOS, runtime.GOARCH, version.PleaseVersion, version.PleaseVersion) } - arcatHash := "" + var String arcatHash switch fmt.Sprintf("%s_%s", runtime.GOOS, runtime.GOARCH) { case "darwin_amd64": arcatHash = "6af2cf108592535701aa9395f3a5deeb48a5dfbe8174a8ebe3d56bb93de2c255" From 30945da5fb84e83dd91e9b099bbe74812df1820f Mon Sep 17 00:00:00 2001 From: Andrzej J Skalski Date: Wed, 4 Feb 2026 16:35:31 +0100 Subject: [PATCH 5/6] fix: making linter happy --- src/parse/internal_package.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/parse/internal_package.go b/src/parse/internal_package.go index 3c5daac08..b867eca57 100644 --- a/src/parse/internal_package.go +++ b/src/parse/internal_package.go @@ -27,7 +27,7 @@ func GetInternalPackage(config *core.Configuration) (string, error) { url = fmt.Sprintf("%s/%s_%s/%s/please_tools_%s.tar.xz", config.Please.DownloadLocation, runtime.GOOS, runtime.GOARCH, version.PleaseVersion, version.PleaseVersion) } - var String arcatHash + var arcatHash string switch fmt.Sprintf("%s_%s", runtime.GOOS, runtime.GOARCH) { case "darwin_amd64": arcatHash = "6af2cf108592535701aa9395f3a5deeb48a5dfbe8174a8ebe3d56bb93de2c255" From 560b073ac0ce9c134fce087b62e2d04a20eeca05 Mon Sep 17 00:00:00 2001 From: Andrzej J Skalski Date: Wed, 4 Feb 2026 18:08:48 +0100 Subject: [PATCH 6/6] retry circle ci