Skip to content

Commit e205f7d

Browse files
jeffdijdicorpo
andauthored
fix(deps): pin klayout==0.29.2 to match mpw_precheck base image (1.3.2) (#110)
The chipfoundry/mpw_precheck base image ships a RockyLinux RPM of klayout-0.29.2 that installs native .so files into site-packages. With the previous unpinned `klayout` dependency, a subsequent `pip install --force-reinstall cf-precheck` on top of that base (as done by the remote precheck-runner image) would happily resolve `klayout` to the latest PyPI version (currently 0.30.x), whose Python wrappers are ABI-incompatible with the 0.29.2 .so files from the RPM. `import pya` then fails with: ImportError: /usr/local/lib64/python3.9/site-packages/klayout/ lib_db.cpython-39-x86_64-linux-gnu.so: undefined symbol: _ZNK2db18shape_interactions...intruders_for Pinning to the exact version the base-image RPM provides keeps pip-only installs (including ECS runner rebuilds) coherent. Bump the image's RPM and this pin together when upgrading KLayout in future. Made-with: Cursor Co-authored-by: jdicorpo <jdicorpo@gmail.com>
1 parent f2d9445 commit e205f7d

2 files changed

Lines changed: 9 additions & 2 deletions

File tree

pyproject.toml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,14 @@ license = "Apache-2.0"
1111
requires-python = ">=3.9"
1212
dependencies = [
1313
"rich",
14-
"klayout",
14+
# Pin klayout to match the native toolchain in chipfoundry/mpw_precheck
15+
# (RockyLinux 9 RPM: klayout-0.29.2). PyPI has shipped 0.30+ that are ABI-
16+
# incompatible with the 0.29.2 native .so files baked in the base image,
17+
# so leaving this unpinned causes `import pya` to fail with an
18+
# `undefined symbol: _ZNK2db18shape_interactions...` ImportError after a
19+
# `pip install --force-reinstall cf-precheck` on top of the base image.
20+
# If the base image bumps its klayout RPM, bump this pin in lockstep.
21+
"klayout==0.29.2",
1522
"numpy",
1623
"pyverilog",
1724
"pyyaml",

src/cf_precheck/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "1.3.1"
1+
__version__ = "1.3.2"

0 commit comments

Comments
 (0)