docker: install bazel dependencies in the dev image - #11228
Draft
maliberty wants to merge 1 commit into
Draft
Conversation
Contributor
There was a problem hiding this comment.
Code Review
This pull request updates the Dockerfile to run /tmp/DependencyInstaller.sh -bazel before other installation steps to ensure Bazel dependencies are present in the dev image. The reviewer pointed out that running this script first on Debian/Ubuntu-based images will fail because apt-get update has not been run yet, and suggested updating the package lists beforehand.
openroad-ci
force-pushed
the
Dockerfile-add-bazel
branch
from
August 25, 2026 05:10
65bae74 to
421e340
Compare
The dev image carried only the CMake dependency set, so a Bazel build inside it had no lld runtime libraries and no X11/xcb libraries. On Ubuntu 26.04 that also means no libxml2.so.2 compatibility symlink, without which the prebuilt LLVM lld cannot load at all. Adding -bazel to the dev image is the first time _install_bazel runs on anything but Ubuntu, which exposed three problems: _install_bazel returned early whenever bazelisk was already on PATH, skipping the library installs with it -- so a system that got bazelisk from the -ci package set ended up able to run Bazel but not to link. Install the two independently. curl was assumed to be present. It is installed by the -ci package set, which only applies to Ubuntu, so on Debian the bazelisk download failed with "curl: command not found". Install it when missing, and refresh the apt lists, so -bazel stands on its own rather than only as a follow-on to -base. The xcb list installed -dev/-devel packages. Qt comes from the qt-bazel prebuilts and nothing compiles against system xcb headers, so only the runtime libraries are needed; the -devel ones live in PowerTools/CRB on RHEL-likes and are simply absent, which failed Rocky 8. Install the runtime set, and probe for xcb-util-cursor, which reaches RHEL 8 only through EPEL. Verified end to end on ubuntu:22.04, ubuntu:26.04, debian:13, rockylinux:8 and rockylinux:9. The image now serves both build systems. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
openroad-ci
force-pushed
the
Dockerfile-add-bazel
branch
from
August 25, 2026 05:54
421e340 to
6b4d46c
Compare
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.
The dev image carried only the CMake dependency set, so a Bazel build inside it had no bazelisk, no lld runtime libraries and no X11/xcb libraries. On Ubuntu 26.04 that also means no libxml2.so.2 compatibility symlink, without which the prebuilt LLVM lld cannot load at all.
Run DependencyInstaller.sh -bazel first, before either -ci invocation: _install_bazel returns early when bazelisk is already on PATH, and the -ci path installs bazelisk, so any later ordering would silently skip every library -bazel exists to provide.
The image now serves both build systems.
In the (near) future we should be able to remove the non-bazel portion as we remove cmake support.