Skip to content

Add Debian and Kali GNU/Linux support to DependencyInstaller#3945

Closed
harsh-kumar-patwa wants to merge 2 commits intoThe-OpenROAD-Project:masterfrom
harsh-kumar-patwa:add-debian-kali-support
Closed

Add Debian and Kali GNU/Linux support to DependencyInstaller#3945
harsh-kumar-patwa wants to merge 2 commits intoThe-OpenROAD-Project:masterfrom
harsh-kumar-patwa:add-debian-kali-support

Conversation

@harsh-kumar-patwa
Copy link
Contributor

@harsh-kumar-patwa harsh-kumar-patwa commented Mar 2, 2026

Summary

Partial fix for #3910

The ORFS etc/DependencyInstaller.sh only matches "Ubuntu" and "Debian GNU/Linux rodete" in its OS detection. Both "Debian GNU/Linux" and "Kali GNU/Linux" fall through to the "unsupported system" error.

Changes

etc/DependencyInstaller.sh

  • Added a "Debian GNU/Linux" | "Kali GNU/Linux" case entry that detects the version from /etc/os-release and routes through OpenROAD dependency installation + ORFS packages
  • Reuses the existing _installUbuntuPackages function (no duplicate function) with distro-aware handling:
    • KLayout: installed via apt on Debian/Kali (available since Debian 11) instead of Ubuntu-specific .deb URLs
    • Docker: uses download.docker.com/linux/debian repo instead of download.docker.com/linux/ubuntu (Kali maps to Debian)
    • libstdc++: Ubuntu-specific versioned package selection is skipped on Debian/Kali
  • Existing Ubuntu, Enterprise Linux, and Darwin code paths are completely untouched

Verification

  • bash -n syntax validation passes
  • shellcheck reports zero new warnings
  • Docker Debian GPG URL confirmed valid (HTTP 200)

Scope

This PR covers fix #1 (OS detection) from the issue at the ORFS level. Fixes #2#5 (libtcl, libpython, or-tools, abseil) are in the OpenROAD submodule's DependencyInstaller.sh and would need a separate PR to that repo.

Resolves The-OpenROAD-Project#3910 (ORFS side)

The ORFS DependencyInstaller.sh only matches "Ubuntu" and
"Debian GNU/Linux rodete" in OS detection — both "Debian GNU/Linux"
and "Kali GNU/Linux" hit the "unsupported system" fallback.

Add a dedicated _installDebianPackages function and case entry for
Debian/Kali that:
- Installs the same base apt packages as Ubuntu
- Uses KLayout from Debian repos instead of Ubuntu-specific .deb URLs
- Uses Docker's Debian repo URL instead of Ubuntu's
- Handles failures gracefully with warnings

Existing Ubuntu, Enterprise Linux, and Darwin code paths are
completely untouched.

Signed-off-by: Harsh Kumar Patwa <harshkumarpatwa@gmail.com>
Signed-off-by: Harsh Kumar <harshkumar3446@gmail.com>
fi
}

_installDebianPackages() {
Copy link
Member

Choose a reason for hiding this comment

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

There is already a _install_debian_packages - why do we have another?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

You're right. I missed that OpenROAD's DependencyInstaller.sh already has _install_debian_packages which gets called via _installORDependencies.
I'll remove the duplicate function and instead just add Debian/Kali to the existing Ubuntu case entry, reusing _installUbuntuPackages with minor adjustments for the Docker repo URL and KLayout install path. Will push an update shortly.

Address review feedback: remove separate _installDebianPackages function
and reuse _installUbuntuPackages with distro-aware handling for Docker
repo URL, KLayout install method, and libstdc++ version selection.

Signed-off-by: Harsh Kumar Patwa <harshkumarpatwa@gmail.com>

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Harsh Kumar <harshkumar3446@gmail.com>
Comment on lines 150 to +153
_installUbuntuPackages() {
# Detect distro for Docker repo URL and KLayout install method
local distro_id
distro_id=$(. /etc/os-release && echo "${ID}")
Copy link
Member

Choose a reason for hiding this comment

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

How is this related to debian? I don't want to QA AI slop.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Debian/Kali needs slightly different handling for KLayout (apt vs .deb), Docker repo URL (/debian vs /ubuntu), and libstdc++ package names. I'll close this and resubmit with a cleaner approach

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.

Resizer Segfaults if setRC.tcl is not present

2 participants