Skip to content

Change the default bazel build to gui#8532

Open
openroad-ci wants to merge 4 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:bzl-gui-on
Open

Change the default bazel build to gui#8532
openroad-ci wants to merge 4 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:bzl-gui-on

Conversation

@openroad-ci
Copy link
Copy Markdown
Collaborator

No description provided.

@maliberty maliberty enabled auto-merge October 3, 2025 04:45
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Oct 3, 2025

clang-tidy review says "All clean, LGTM! 👍"

@oharboe
Copy link
Copy Markdown
Collaborator

oharboe commented Oct 3, 2025

😌

@gadfort
Copy link
Copy Markdown
Contributor

gadfort commented Oct 3, 2025

@maliberty I just tried this and got:
./bazel-bin/openroad: error while loading shared libraries: libxcb-cursor.so.0: cannot open shared object file: No such file or directory do you know what I'm missing?

@maliberty
Copy link
Copy Markdown
Member

@QuantamHD set this up so hopefully he can answer

@maliberty
Copy link
Copy Markdown
Member

Its possible you need xcb-util-cursor installed?

@maliberty
Copy link
Copy Markdown
Member

Note that bazel is using qt6

@gadfort
Copy link
Copy Markdown
Contributor

gadfort commented Oct 3, 2025

Its possible you need xcb-util-cursor installed?

@maliberty yes, I needed to run sudo apt-get install libxcb-cursor0 might be good to document these things as the transition to bazel, since we'll need to provide install scripts that handle this for users like the dependency installer.

@maliberty
Copy link
Copy Markdown
Member

@QuantamHD is it possible to avoid the need for the user to install this package separately?

@oharboe
Copy link
Copy Markdown
Collaborator

oharboe commented Oct 4, 2025

Are we not relying on a number of packages we take for granted, but have been installed by anyone who have tested so far?

What makes this package special?

@maliberty
Copy link
Copy Markdown
Member

In the cli build ldd shows few libraries

        linux-vdso.so.1 (0x0000776d60f43000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x0000776d60e3f000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x0000776d56600000)
        /lib64/ld-linux-x86-64.so.2 (0x0000776d60f45000)

but there are many more in the gui build:

        linux-vdso.so.1 (0x00007e0619b80000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007e060d702000)
        libX11-xcb.so.1 => /lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007e0619b6f000)
        libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007e060d5c5000)
        libSM.so.6 => /lib/x86_64-linux-gnu/libSM.so.6 (0x00007e060d5bb000)
        libICE.so.6 => /lib/x86_64-linux-gnu/libICE.so.6 (0x00007e060d59f000)
        libxcb-cursor.so.0 => /lib/x86_64-linux-gnu/libxcb-cursor.so.0 (0x00007e060d598000)
        libxcb-icccm.so.4 => /lib/x86_64-linux-gnu/libxcb-icccm.so.4 (0x00007e060d591000)
        libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007e060d566000)
        libxcb-image.so.0 => /lib/x86_64-linux-gnu/libxcb-image.so.0 (0x00007e060d560000)
        libxcb-keysyms.so.1 => /lib/x86_64-linux-gnu/libxcb-keysyms.so.1 (0x00007e060d55b000)
        libxcb-randr.so.0 => /lib/x86_64-linux-gnu/libxcb-randr.so.0 (0x00007e060d54a000)
        libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007e060d53b000)
        libxcb-render-util.so.0 => /lib/x86_64-linux-gnu/libxcb-render-util.so.0 (0x00007e060d534000)
        libxcb-shape.so.0 => /lib/x86_64-linux-gnu/libxcb-shape.so.0 (0x00007e060d52d000)
        libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007e060d528000)
        libxcb-sync.so.1 => /lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007e060d51f000)
        libxcb-util.so.1 => /lib/x86_64-linux-gnu/libxcb-util.so.1 (0x00007e060d517000)
        libxcb-xfixes.so.0 => /lib/x86_64-linux-gnu/libxcb-xfixes.so.0 (0x00007e060d50d000)
        libxcb-xkb.so.1 => /lib/x86_64-linux-gnu/libxcb-xkb.so.1 (0x00007e060d4ef000)
        libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007e060d49e000)
        libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007e060d44d000)
        libxkbcommon.so.0 => /lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007e060d404000)
        libxkbcommon-x11.so.0 => /lib/x86_64-linux-gnu/libxkbcommon-x11.so.0 (0x00007e060d3fa000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007e060d000000)
        /lib64/ld-linux-x86-64.so.2 (0x00007e0619b82000)
        libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007e060d3ee000)
        libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007e060d3d8000)
        libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007e060d3d2000)
        libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007e060d3ca000)
        libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007e060d2ea000)
        libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007e060d21e000)
        libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007e060cfd4000)
        libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007e060cfc5000)
        libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007e060cfb8000)
        libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007e060ce70000)
        liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007e060ce4e000)
        liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007e060ce1c000)
        libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007e060cd62000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007e060cd46000)
        libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007e060cd32000)
        libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007e060ccfa000)
        libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007e060ccec000)
        libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007e060ccc7000)
        libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007e060cca4000)

@maliberty
Copy link
Copy Markdown
Member

What makes this package special?

Without the GUI there are very minimal install requirements (just bazelisk afaik) but not so with the gui. It lessens the ability to kill off the dependency installer but at least it will make it much simpler.

@github-actions
Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@github-actions
Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@github-actions
Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

maliberty and others added 4 commits March 12, 2026 15:52
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Vitor Bandeira <vvbandeira@precisioninno.com>
x
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
x
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
@github-actions
Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@maliberty maliberty added the Stale A stale PR or issue subject to automated closure. label Mar 25, 2026
@github-actions github-actions Bot closed this Apr 15, 2026
auto-merge was automatically disabled April 15, 2026 15:55

Pull request was closed

@maliberty maliberty reopened this May 1, 2026
@github-actions github-actions Bot removed the Stale A stale PR or issue subject to automated closure. label May 1, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 1, 2026

clang-tidy review says "All clean, LGTM! 👍"

oharboe added a commit to oharboe/OpenROAD that referenced this pull request May 13, 2026
Repin qt-bazel at oharboe/qt_bazel_prebuilts#xcb-cursor-from-source
HEAD (878efffc), which builds xcb-util-cursor 0.1.5 from source as
a static cc_library instead of letting interface_libs/xcb dlopen
libxcb-cursor.so.0 from the host. That removes the apt-install
libxcb-cursor0 step gadfort hit on The-OpenROAD-Project#8532, unblocking the
GUI-by-default switch in the follow-up PR.

The upstream PR is The-OpenROAD-Project/qt_bazel_prebuilts#11;
once that merges, this commit will be repinned to the merged SHA
on the The-OpenROAD-Project remote and the oharboe fork URL will
be replaced.

Replaces the earlier downstream-patch approach (curl in
patch_cmds, no sha256 verification) with @QuantamHD's suggestion
of fixing it upstream.

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
oharboe added a commit to oharboe/OpenROAD that referenced this pull request May 13, 2026
The platform string_flag now defaults to "gui" instead of "cli",
so `bazelisk build //:openroad` produces the Qt-linked binary
without needing `--//:platform=gui` on the command line. Users
who specifically want a CLI-only binary can still pass
`--//:platform=cli`.

Picks up where PR The-OpenROAD-Project#8532 left off; the libxcb-cursor0 blocker
reported there is fixed by the preceding commit which builds
xcb-util-cursor from source in qt-bazel.

bazel/Dockerfile gains the runtime xcb/X11 libs that the
Qt-linked binary loads at startup (so `bazel test
//src/gui/test:supported` can exec it inside the CI container).
libxcb-cursor0 is intentionally not in this list -- it's no
longer in DT_NEEDED.

User-facing docs (docs/user/Build.md, src/gui/README.md) and the
macOS CI workflow drop the now-redundant --//:platform=gui flag.
etc/Build.sh already passes the flag explicitly based on
--no-gui and is left alone.

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants