-
Notifications
You must be signed in to change notification settings - Fork 145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Python C++ module not properly repaired, retains dependency on symlink to bundled library #159
Comments
Ugh. I can't even run the resulting wheel on the manylinux2010 container, same eror:
Edit: for completeness, here's the output of
Here's
|
I tried linking the library to libcrypto statically and it works, but:
Wat. |
Could you upload the wheel somewhere? If possible the original version before you ran |
(Sorry for the late reply, I can't share that wheel but will do a minimal example when I get the time...) |
@lkollar Same issue (I hope, even though it comes from side dependency shipped with the wheel): |
https://drop.bakatrouble.me/pytgvoip.whl/ |
Thanks, I’ll try to have a look later this week. |
I think this is due to a
Relevant
I'll try to confirm with the patched |
Small correction: there is a |
The version information appears to be correct after installing I think we should add a version check on |
If it'll help, Dockerfile used for building is here. |
Here's the output of |
Thanks for the Dockerfile. I can confirm that even with
This needs more investigation. |
The above version information is actually correct. This particular version of
However, the vendored .so has incorrect version information in this section:
This happens because Version strings in the dnyamic string table:
The new The original
The code to zero out the original |
This has already been reported in |
Removes the code mentioned here: pypa/auditwheel#159 (comment)
Split Linux Python packages to avoid timeout issues. Remove ITKPythonGitTag from .yml variable. It should be defined in the pipeline variables section when configuring a new pipeline. Use ITKv5.0.1 in setup.py until ITKPythonBuilds for v5.1.0 are ready. Setup self hosted pipeline to build with CUDA. Building on manylinux image requires CUDA_NVCC_FLAGS="-std=c++11". WARNING: CUDA packages for Linux build successfully but fail at runtime because of a known issue with auditwheel. See the following for reference: pypa/auditwheel#159 The docker image used to build packages should be updated with a custom version of patchelf to work around the issue.
Has there been any movement on this? As far as I can tell the only way to publish wheels that require, e.g. CUDA, is to lie about them being manylinux. |
There has been no movement on applying the fix in patchelf. We could apply the patch in the version of patchelf we ship with the manylinux images as a workaround though. |
That might be necessary, though the current situation is overall undesirable. |
What I mean by this is: I would very much like to publish wheels to PyPI, but I doubt it would bring any good. Since my package is meant to interact closely with Pytorch and other similar frameworks, there are bound to be issues where users update either package, resulting in such a version mismatch with dependencies. So, I don't know if publishing manylinux wheels is useful at all without users knowing exactly what's going on in the background. |
Can confirm that pypa/manylinux#545 fixes auditwheel with CUDA libraries. Thanks a bunch! |
I have a Python C++ module that links to libcrypto from OpenSSL and libcurl. I build the package on the manylinux2010 container (
python3 setup.py bdist_wheel
) and runauditwheel repair
on the .whl. The library shared objects (libcrypto, libz and libcurl) are correctly packed in and ldd-ing the Python module shared object correctly finds and shows them as dependencies, yet it retains a dependency on "libcrypto.so.10", which is named differently on e.g. Debian-based containers, making import fail. What am I missing?The text was updated successfully, but these errors were encountered: