Skip to content

installer: retire the KLayout application install - #4797

Closed
oharboe wants to merge 1 commit into
The-OpenROAD-Project:masterfrom
oharboe:retire-klayout-install
Closed

oharboe wants to merge 1 commit into
The-OpenROAD-Project:masterfrom
oharboe:retire-klayout-install

Conversation

@oharboe

@oharboe oharboe commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator

Before: the installer installed the KLayout application on every OS, because the flow wrote its GDS file and ran its DRC/LVS decks with it.
Now: the installer installs no KLayout application; the flow needs only KLayout's Python module, which #4757 brings in with the other Python packages.

Draft, and red until #4757 merges. This pull request does not contain #4757: on master the GDS merge still runs under the KLayout application, so without it the flow stops at the merge. Once #4757 is in master, pr-merge runs this on top of it and goes green; then this comes out of draft. It merges cleanly on top of #4757 (git merge-tree).

Deleted

  • etc/DependencyInstaller.sh: klayoutVersion and the KLayout install for each OS:
    • the version-check-and-reinstall logic, written three times (CentOS 7, CentOS 8, Rocky Linux 9) around klayout.org RPMs;
    • on Ubuntu x86_64, the klayout.org .deb download, its md5 table per release, and the "Unsupported Ubuntu version" exit, so KLayout's packaging no longer limits which Ubuntu releases the installer supports;
    • on Ubuntu aarch64, the build of KLayout from source with its Qt, Ruby and libgit2 build dependencies, the slowest step of a fresh aarch64 install;
    • klayout from apt on rodete, and the Homebrew cask on macOS.
  • env.sh: the KLayout.app PATH entry on macOS.
  • flow/scripts/variables.mk: the lookup of a KLayout in tools/install/klayout, which nothing installs. KLAYOUT_CMD is the klayout on PATH unless set.
  • docs/user/BuildWithPrebuilt.md: the KLayout version note and the LD_LIBRARY_PATH line for a KLayout built from source; it now says the GDS file, DRC and LVS use the Python module.

Still needing the KLayout application

A deprecated Ruby DRC/LVS deck (unsupported after 2027-02-06, #4757), the gallery and the viewers. Whoever uses them installs it; without it they stop at check-klayout, as on master.

Tests

🤖 Generated with Claude Code

https://claude.ai/code/session_018PFLaCzFtFbnWE4nPTDwpC

The flow writes its GDS file and runs its DRC and LVS decks with
KLayout's Python module, from the installer's Python packages, so the
installer no longer installs the KLayout application.

Deleted:

- etc/DependencyInstaller.sh: klayoutVersion, and the KLayout install
  for each OS: the CentOS 7, CentOS 8 and Rocky Linux 9 RPMs with their
  version check and reinstall, the Ubuntu .deb with its md5 table per
  release and the "Unsupported Ubuntu version" exit, the build from
  source on Ubuntu aarch64 with its Qt, Ruby and libgit2 build
  dependencies, `klayout` from apt on rodete and the Homebrew cask on
  macOS.
- env.sh: the KLayout.app PATH entry on macOS.
- flow/scripts/variables.mk: the lookup of a KLayout built into
  tools/install/klayout, which nothing installs. KLAYOUT_CMD is the
  klayout on PATH unless set, and is exported bare.
- docs/user/BuildWithPrebuilt.md: the KLayout version note and the
  LD_LIBRARY_PATH line for a KLayout built from source.

A deprecated Ruby DRC/LVS deck, the gallery and the viewers still need
the KLayout application, installed by those who use them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018PFLaCzFtFbnWE4nPTDwpC
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>

@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 simplifies the KLayout installation process by removing custom build and dependency management logic from the installation scripts and Makefiles, relying instead on system-provided packages. The review comment identifies a performance issue in the Makefile where the use of a deferred shell expansion for the KLayout command causes unnecessary shell spawning; it suggests a more efficient way to define the variable.

Comment thread flow/scripts/variables.mk Resolved
@oharboe

oharboe commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

Folded into #4757 as its last commit, installer: no KLayout application: with Ruby decks deprecated, the ORFS installer installs only the klayout Python module, and whoever uses a Ruby deck installs the KLayout application themselves.

@oharboe oharboe closed this Nov 6, 2026
@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 7d81988 · Jenkins build #1 · Baseline: none resolved · View build on dashboard

62 design(s) checked — 0 with regression(s), 62 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