Add Debian and Kali GNU/Linux support to DependencyInstaller#3945
Add Debian and Kali GNU/Linux support to DependencyInstaller#3945harsh-kumar-patwa wants to merge 2 commits intoThe-OpenROAD-Project:masterfrom
Conversation
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>
etc/DependencyInstaller.sh
Outdated
| fi | ||
| } | ||
|
|
||
| _installDebianPackages() { |
There was a problem hiding this comment.
There is already a _install_debian_packages - why do we have another?
There was a problem hiding this comment.
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>
| _installUbuntuPackages() { | ||
| # Detect distro for Docker repo URL and KLayout install method | ||
| local distro_id | ||
| distro_id=$(. /etc/os-release && echo "${ID}") |
There was a problem hiding this comment.
How is this related to debian? I don't want to QA AI slop.
There was a problem hiding this comment.
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
Summary
Partial fix for #3910
The ORFS
etc/DependencyInstaller.shonly 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"Debian GNU/Linux" | "Kali GNU/Linux"case entry that detects the version from/etc/os-releaseand routes through OpenROAD dependency installation + ORFS packages_installUbuntuPackagesfunction (no duplicate function) with distro-aware handling:apton Debian/Kali (available since Debian 11) instead of Ubuntu-specific.debURLsdownload.docker.com/linux/debianrepo instead ofdownload.docker.com/linux/ubuntu(Kali maps to Debian)Verification
bash -nsyntax validation passesshellcheckreports zero new warningsScope
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'sDependencyInstaller.shand would need a separate PR to that repo.