Skip to content

Sub-dependencies may not have RPATH set #322

Description

@WSH032

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?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions