Skip to content

Build and test on Ubuntu 26.04 and 24.04; default Docker builds to 26.04 - #4704

Open
vvbandeira wants to merge 9 commits into
The-OpenROAD-Project:masterfrom
vvbandeira:ubuntu-26-04-support
Open

vvbandeira wants to merge 9 commits into
The-OpenROAD-Project:masterfrom
vvbandeira:ubuntu-26-04-support

Conversation

@vvbandeira

Copy link
Copy Markdown
Member

Build and test ORFS on Ubuntu 26.04 and 24.04, with 26.04 as the default for local Docker builds.
Ubuntu 22.04 leaves the Docker helper options, the image workflows, and the docs.
The 22.04 code in etc/DependencyInstaller.sh stays, so installs on 22.04 can still work, but CI no longer tests them.

  • etc/DependencyInstaller.sh
    • Adds the KLayout 0.30.12 checksum for Ubuntu 26.04 (the Ubuntu-26 package from klayout.org).
    • Fixes the Python packages on Ubuntu 23.04 and later. _installPipSystem ran only when the option was both common and base, so only -all reached it. docker/Dockerfile.dev runs -base and -common as two calls, so the 24.04 images had no pandas, numpy, click, or yaml. It now runs with -base.
  • etc/DockerHelper.sh, build_openroad.sh, docker/Dockerfile.dev: accept ubuntu26.04 (default) and ubuntu24.04.
  • Publish and installer-test workflows: build for 26.04 and 24.04.
  • Docs: Ubuntu 26.04 and 24.04 in the build guides. The prebuilt binaries page still lists only the packages that its linked releases contain.

docker/Dockerfile.builder and docker/Dockerfile.claude keep openroad/flow-ubuntu22.04-dev:latest as their default until a flow-ubuntu26.04-dev image is published. Their callers pass fromImage.

Verification

On an amd64 Ubuntu host with podman, docker/Dockerfile.dev built with -ci -yosys-ver=v0.68 and the pinned OpenROAD installer:

Base Image build import pandas, numpy, yaml, click
ubuntu:26.04 before the pip fix pass all missing
ubuntu:26.04 after the pip fix pass all present, yamlfix present
ubuntu:24.04 after the pip fix pass all present, yamlfix present

The published openroad/flow-ubuntu24.04-dev:latest and -builder:latest images also lack these modules today.
KLayout in the 26.04 image reports KLayout 0.30.12.
With a stub docker, DockerHelper.sh create -target=builder builds flow-ubuntu26.04-builder by default, flow-ubuntu24.04-builder with -os=ubuntu24.04, and rejects -os=ubuntu22.04.

The amd64 KLayout install stopped on Ubuntu 26.04 because no checksum
was set for it. The checksum is the md5 of the Ubuntu-26 release
package on klayout.org.

The error text now lists 24.04 and 26.04 as supported. The 22.04 path
stays, but it is not supported.

Signed-off-by: Vitor Bandeira <vvbandeira@precisioninno.com>
DockerHelper.sh accepted only ubuntu22.04, so CI could not build
images on newer Ubuntu releases. The default stays ubuntu22.04.

Signed-off-by: Vitor Bandeira <vvbandeira@precisioninno.com>
Ubuntu 22.04 is not supported now. The image publish and installer
test jobs now use the two supported Ubuntu releases.

Signed-off-by: Vitor Bandeira <vvbandeira@precisioninno.com>
Ubuntu 22.04 is not supported now. The examples use Ubuntu 26.04, and
the Docker guide lists the valid -os values.

Signed-off-by: Vitor Bandeira <vvbandeira@precisioninno.com>
On Ubuntu 23.04 and later, _installPipSystem ran only when the option
was both common and base, so only -all reached it. Dockerfile.dev runs
-base and -common as two calls, so the 24.04 and 26.04 images had no
pandas, numpy, click, or yaml. These packages come from apt, so install
them with the other system packages in -base.

Signed-off-by: Vitor Bandeira <vvbandeira@precisioninno.com>
Signed-off-by: Vitor Bandeira <vvbandeira@precisioninno.com>
The threads example now selects Ubuntu 26.04 like the main example.
The prebuilt list goes back to the packages that the linked releases
have. A blank line restores the break before the second WSL image.

Signed-off-by: Vitor Bandeira <vvbandeira@precisioninno.com>
Local Docker builds now use Ubuntu 26.04 by default, and Ubuntu 22.04
is no longer an option. The publish and installer-test workflows pass
the OS for each matrix entry, and Jenkins builds its images without
these scripts, so only local builds change.

Signed-off-by: Vitor Bandeira <vvbandeira@precisioninno.com>
The prebuilt binaries page lists Ubuntu 22.04 packages only, so the
container for that path must stay on Ubuntu 22.04.

Signed-off-by: Vitor Bandeira <vvbandeira@precisioninno.com>
@vvbandeira
vvbandeira requested a review from a team as a code owner October 20, 2026 12:43
@vvbandeira
vvbandeira requested review from sombraSoft and removed request for a team October 20, 2026 12:43

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the default base OS from Ubuntu 22.04 to Ubuntu 26.04 across build scripts, Dockerfiles, and documentation, while also introducing support for Ubuntu 24.04. Feedback is provided to simplify and remove redundancy in the list of supported configurations in the local build documentation.

Comment thread docs/user/BuildLocally.md
The `setup.sh` script installs all of the dependencies, including OpenROAD dependencies, if they are not already installed.

Supported configurations are: Ubuntu 22.04, Ubuntu 22.04(aarch64), RHEL 8, RockyLinux 9 and Debian 11.
Supported configurations are: Ubuntu 26.04, Ubuntu 24.04, Ubuntu 26.04 and 24.04 (aarch64), RHEL 8, RockyLinux 9 and Debian 11.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The list of supported configurations is redundant. It lists 'Ubuntu 26.04, Ubuntu 24.04' and then 'Ubuntu 26.04 and 24.04 (aarch64)'. Consider simplifying this to 'Supported configurations are: Ubuntu 26.04 (x86_64, aarch64), Ubuntu 24.04 (x86_64, aarch64), RHEL 8, RockyLinux 9 and Debian 11.'

Suggested change
Supported configurations are: Ubuntu 26.04, Ubuntu 24.04, Ubuntu 26.04 and 24.04 (aarch64), RHEL 8, RockyLinux 9 and Debian 11.
Supported configurations are: Ubuntu 26.04 (x86_64, aarch64), Ubuntu 24.04 (x86_64, aarch64), RHEL 8, RockyLinux 9 and Debian 11.

@openroad-ci

Copy link
Copy Markdown
Member

🔍 QoR check

Metrics reflect the PR merge build — i.e. what will land on the target branch.

Commit ac6050f · Jenkins build #1 · Baseline: build · View build on dashboard

62 design(s) checked — 0 with regression(s), 0 without a comparable baseline.

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.

2 participants