Skip to content

Commit 8b03043

Browse files
committed
add bazel package
Signed-off-by: James Rawlings <jrawlings@chainguard.dev>
1 parent 6370c07 commit 8b03043

File tree

3 files changed

+123
-0
lines changed

3 files changed

+123
-0
lines changed

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,5 +198,6 @@ $(eval $(call build-package,postgresql-15,15.0-r0,postgresql))
198198
$(eval $(call build-package,llvm15,15.0.3-r0))
199199
$(eval $(call build-package,tzdata,2022f-r0))
200200
$(eval $(call build-package,maven,3.8.6-r1))
201+
$(eval $(call build-package,bazel-5,5.3.2-r0))
201202

202203
.build-packages: ${PACKAGES}

bazel-5.yaml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package:
2+
name: bazel5
3+
version: 5.3.2
4+
epoch: 0
5+
description: Bazel is an open-source build and test tool
6+
target-architecture:
7+
- all
8+
copyright:
9+
- paths:
10+
- "*"
11+
attestation: TODO
12+
license: Apache-2.0
13+
dependencies:
14+
runtime:
15+
- openjdk-11
16+
environment:
17+
contents:
18+
packages:
19+
- busybox
20+
- ca-certificates-bundle
21+
- build-base
22+
- python3
23+
- zip
24+
- bash
25+
- openjdk-11
26+
pipeline:
27+
- uses: fetch
28+
with:
29+
expected-sha256: 3880ad919592d1e3e40c506f13b32cd0a2e26f129d87cb6ba170f1801d7d7b82
30+
uri: https://github.com/bazelbuild/bazel/releases/download/${{package.version}}/bazel-${{package.version}}-dist.zip
31+
extract: false
32+
- runs: unzip bazel-${{package.version}}-dist.zip
33+
- uses: patch
34+
with:
35+
patches: 0002-Prefer-local_jdk-instead-of-remote_jdk11.patch
36+
- runs: |
37+
mkdir -p $HOME/.cache/bazel/_bazel_root
38+
export JAVA_HOME=/usr/lib/jvm/openjdk
39+
40+
EMBED_LABEL=${{package.version}}-${{package.epoch}} \
41+
EXTRA_BAZEL_ARGS=--tool_java_runtime_version=local_jdk \
42+
./compile.sh
43+
44+
./output/bazel clean --expunge
45+
46+
mkdir -p ${{targets.destdir}}/usr/bin
47+
cp ./output/bazel ${{targets.destdir}}/usr/bin/
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
From 75a294bc20878ece2b45359a9c06db644744112f Mon Sep 17 00:00:00 2001
2+
From: Wolf <wolf@wolfsden.cz>
3+
Date: Wed, 20 Jul 2022 02:00:52 +0200
4+
Subject: [PATCH 2/4] Prefer local_jdk instead of remote_jdk11
5+
6+
---
7+
.../devtools/build/lib/rules/java/JavaOptions.java | 2 +-
8+
tools/jdk/BUILD.tools | 2 +-
9+
tools/jdk/default_java_toolchain.bzl | 10 +++++-----
10+
3 files changed, 7 insertions(+), 7 deletions(-)
11+
12+
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
13+
index 7794ef22c1..693f640131 100644
14+
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
15+
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
16+
@@ -511,7 +511,7 @@ public class JavaOptions extends FragmentOptions {
17+
18+
@Option(
19+
name = "tool_java_runtime_version",
20+
- defaultValue = "remotejdk_11",
21+
+ defaultValue = "local_jdk",
22+
documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
23+
effectTags = {OptionEffectTag.UNKNOWN},
24+
help = "The Java runtime version used to execute tools during the build")
25+
diff --git a/tools/jdk/BUILD.tools b/tools/jdk/BUILD.tools
26+
index 7586fc22de..8edd0f9619 100644
27+
--- a/tools/jdk/BUILD.tools
28+
+++ b/tools/jdk/BUILD.tools
29+
@@ -328,7 +328,7 @@ alias(
30+
31+
alias(
32+
name = "host_jdk",
33+
- actual = ":remote_jdk11",
34+
+ actual = "@local_jdk//:jdk",
35+
)
36+
37+
bootclasspath(
38+
diff --git a/tools/jdk/default_java_toolchain.bzl b/tools/jdk/default_java_toolchain.bzl
39+
index af3a646a44..da137ed26d 100644
40+
--- a/tools/jdk/default_java_toolchain.bzl
41+
+++ b/tools/jdk/default_java_toolchain.bzl
42+
@@ -98,7 +98,7 @@ DEFAULT_TOOLCHAIN_CONFIGURATION = dict(
43+
"@remote_java_tools//:java_compiler_jar",
44+
"@remote_java_tools//:jdk_compiler_jar",
45+
],
46+
- java_runtime = "@bazel_tools//tools/jdk:remote_jdk11",
47+
+ java_runtime = "@local_jdk//:jdk",
48+
)
49+
50+
# The 'vanilla' toolchain is an unsupported alternative to the default.
51+
@@ -137,9 +137,9 @@ PREBUILT_TOOLCHAIN_CONFIGURATION = dict(
52+
"@remote_java_tools//:java_compiler_jar",
53+
"@remote_java_tools//:jdk_compiler_jar",
54+
],
55+
- ijar = ["@bazel_tools//tools/jdk:ijar_prebuilt_binary"],
56+
- singlejar = ["@bazel_tools//tools/jdk:prebuilt_singlejar"],
57+
- java_runtime = "@bazel_tools//tools/jdk:remote_jdk11",
58+
+ ijar = ["@remote_java_tools//:ijar_cc_binary"],
59+
+ singlejar = ["@remote_java_tools//:singlejar_cc_bin"],
60+
+ java_runtime = "@local_jdk//:jdk",
61+
)
62+
63+
# The new toolchain is using all the tools from sources.
64+
@@ -158,7 +158,7 @@ NONPREBUILT_TOOLCHAIN_CONFIGURATION = dict(
65+
],
66+
ijar = ["@remote_java_tools//:ijar_cc_binary"],
67+
singlejar = ["@remote_java_tools//:singlejar_cc_bin"],
68+
- java_runtime = "@bazel_tools//tools/jdk:remote_jdk11",
69+
+ java_runtime = "@local_jdk//:jdk",
70+
)
71+
72+
def default_java_toolchain(name, configuration = DEFAULT_TOOLCHAIN_CONFIGURATION, toolchain_definition = True, **kwargs):
73+
--
74+
2.36.2
75+

0 commit comments

Comments
 (0)