-
Notifications
You must be signed in to change notification settings - Fork 95
Description
When using linuxdeploy to package an AppImage containing a Python binary wheel (pillow), I encountered an interesting issue, which I have already reported to pillow: python-pillow/Pillow#9198. I am reporting it here as well, since linuxdeploy may have a different solution.
In short, pillow has an indirect dependency chain: PIL/_imaging.so → pillow.libs/libxcb-64009ff3.so.1.1.0 → pillow.libs/libXau-154567c4.so.6.0.0.
PIL/_imaging.so correctly sets the RPATH, so it can find libxcb-64009ff3.so.1.1.0 at runtime.
However, libxcb-64009ff3.so.1.1.0 does not set RPATH, but at runtime it inherits the RPATH from PIL/_imaging.so, so it can also find libXau-154567c4.so.6.0.0.
When linuxdeploy processes _imaging.so, it can find libxcb-64009ff3.so.1.1.0 because _imaging.so has the correct RPATH set.
But when linuxdeploy processes libxcb-64009ff3.so.1.1.0, it cannot find libXau-154567c4.so.6.0.0 because libxcb-64009ff3.so.1.1.0 does not have RPATH set.
I have provided a detailed analysis in python-pillow/Pillow#9198, so my explanation here is more concise. If anything is unclear, I can provide additional details.
Can you confirm if this is a duplicate of #76? If so, has there been any solution after all these years?