-
Notifications
You must be signed in to change notification settings - Fork 24
Description
I really have no idea whether this bug report belongs here, or at brew.
My reason for trying here first is because the issue exists with rpds-py 0.28.0 but not with rpds-py 0.27.2. (I confirmed this twice).
I maintain a brew formula cwi-dis/cwipc, which amongst many other things creates a Python venv and then installs many Python package into that venv, and reds-py is used by one of my dependencies.
My brew install started failing a short while ago, because something uses install_name_tool to modify the shared library IDs of native libraries installed into the venv. This fails for rpds since 0.28, because there isn't enough space in the Mach-O header for the long name:
==> Installing cwipc from cwi-dis/cwipc
==> cmake -S . -B build -DPython3_ROOT_DIR=/opt/homebrew/opt/[email protected] -DCWIPC_SKIP_PYTHON_INSTALL=1
==> cmake --build build
==> cmake --install build
==> /opt/homebrew/opt/[email protected]/bin/python3.12 -m venv /opt/homebrew/Cellar/cwipc/HEAD-c4104ac/libexec/cwipc/venv
==> /opt/homebrew/Cellar/cwipc/HEAD-c4104ac/libexec/cwipc/venv/bin/python -m pip install --find-links /opt/homebrew/Cellar/cwipc/HE
==> /opt/homebrew/Cellar/cwipc/HEAD-c4104ac/bin/cwipc view --version
Error: Failed changing dylib ID of /opt/homebrew/Cellar/cwipc/HEAD-c4104ac/libexec/cwipc/venv/lib/python3.12/site-packages/rpds/rpds.cpython-312-darwin.so
from @rpath/rpds.cpython-312-darwin.so
to /opt/homebrew/opt/cwipc/libexec/cwipc/venv/lib/python3.12/site-packages/rpds/rpds.cpython-312-darwin.so
Error: Failed to fix install linkage
Updated load commands do not fit in the header of /opt/homebrew/Cellar/cwipc/HEAD-c4104ac/libexec/cwipc/venv/lib/python3.12/site-packages/rpds/rpds.cpython-312-darwin.so. /opt/homebrew/Cellar/cwipc/HEAD-c4104ac/libexec/cwipc/venv/lib/python3.12/site-packages/rpds/rpds.cpython-312-darwin.so needs to be relinked, possibly with -headerpad or -headerpad_max_install_names
The formula built, but you may encounter issues using it or linking other
formulae against it.
The workaround is to manually install rpds-py==0.27.2 before installing my dependencies:
==> Installing cwipc from cwi-dis/cwipc
==> cmake -S . -B build -DPython3_ROOT_DIR=/opt/homebrew/opt/[email protected] -DCWIPC_SKIP_PYTHON_INSTALL=1
==> cmake --build build
==> cmake --install build
==> /opt/homebrew/opt/[email protected]/bin/python3.12 -m venv /opt/homebrew/Cellar/cwipc/HEAD-c4104ac/libexec/cwipc/venv
==> /opt/homebrew/Cellar/cwipc/HEAD-c4104ac/libexec/cwipc/venv/bin/python -m pip install rpds-py==0.27.1
==> /opt/homebrew/Cellar/cwipc/HEAD-c4104ac/libexec/cwipc/venv/bin/python -m pip install --find-links /opt/homebrew/Cellar/cwipc/HE
==> /opt/homebrew/Cellar/cwipc/HEAD-c4104ac/bin/cwipc view --version
🍺 /opt/homebrew/Cellar/cwipc/HEAD-c4104ac: 20,391 files, 892.2MB, built in 1 minute 54 seconds
So apparently the problem was introduced in rpds-py 0.28.0.