Add a FreeBSD platform, and make setup-freebsd.sh work again - #2836
Open
zakinko wants to merge 1 commit into
Open
Add a FreeBSD platform, and make setup-freebsd.sh work again#2836zakinko wants to merge 1 commit into
zakinko wants to merge 1 commit into
Conversation
setup-freebsd.sh has been here since 2017 and no platform refers to it. bazelci.py has 31 platforms and none is a BSD, so nothing has run it in that time and it no longer does what it was written to do. It installs bazel, git, wget and zip. Building Bazel from source also needs bash and unzip, which are not in the base system, a JDK, and python3. The JDK's package does not put itself on the path, and the bootstrap reads JAVA_HOME rather than searching, so it stops saying only "bash failed" or that it cannot find java. With the changes here it takes a stock FreeBSD 14.3 to a completed bootstrap. The platform entry has the shape the other machine-backed platforms have: macOS and Windows are queues rather than docker images. It publishes no binary.
zakinko
requested review from
Wyverald,
fweikert and
meteorcloudy
as code owners
September 1, 2026 22:41
Member
|
Sorry, we probably don't have capacity to add this support in near future. |
Author
|
Understood, no problem. One thing worth separating, though: most of this is I am happy to drop the platform entry and leave only the script fix, if that |
Member
|
I'm fine with merging the script update if it helps! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
buildkite/setup-freebsd.shhas been here since 2017 and no platform refersto it.
bazelci.pyhas 31 platforms and none is a BSD, so nothing has run itin that time and it no longer does what it was written to do.
It installs bazel, git, wget and zip. Building Bazel from source also needs
bash and unzip, which are not in the base system, a JDK, and python3. The
JDK's package does not put itself on the path, and the bootstrap reads
JAVA_HOMErather than searching, so it stops saying only "bash failed" orthat it cannot find java. With the changes here it takes a stock FreeBSD 14.3
to a completed bootstrap; I checked that on a clean machine with nothing else
installed.
The platform entry has the shape the other machine-backed platforms have:
macOS and Windows are queues rather than docker images. It publishes no
binary.
Please add a FreeBSD agent to the
freebsdqueue. Bazel has been broken onFreeBSD and nothing here would have noticed. Building 9.2.0 from source stops
at 336 of 5,576 actions, on two defects that are each one line: the BSD C++
toolchain passes
-lc++but not-lm, so every binary using a hashcontainer fails to link on
ceilf(bazelbuild/rules_cc#862), andgenerate_jvm_module_options.shnames/bin/bashin its shebang, which theBSDs do not have. The second one is already fixed on master - and that is the
point. It broke, shipped in a release, and was fixed, and none of those three
events was visible here. A platform nobody builds is a platform that quietly
stops working.
I already build all four BSDs from source on a fork, on GitHub's hosted
runners through vmactions, at no cost for a public repository - FreeBSD in
30m14s, NetBSD in 38m58s, DragonFly in 39m29s, OpenBSD in 48m35s, each of
them then running a genrule with the binary it produced, so the check covers
the server coming up and not just
--versionanswering.That does not help this project. It does not gate anything here; it only
tells me afterwards that something landed broken, which is where we are
today. If an agent in the fleet is not practical, I would rather send that
workflow as a change to this repository than keep it on a fork, so that a
break shows up on the pull request that causes it. Either way it needs to run
here.