Open ktdreyer opened 4 months ago
Unfortunately this is not really possible for Linux. See https://github.com/pythongssapi/python-gssapi/issues/200 for a more detailed explanation as to why we don't do it for Linux. The reason why we do this for Windows and macOS is because:
GSS.Framework
so we don't have concerns about loading multiple copies of the gssapi libraryThank you for explaining this. The link to #200 helps me understand the history and the bulleted points explain how the Linux situation is different than Windows or macOS. I didn't know that Windows wheels don't have to pass auditwheel.
When Python links to multiple libgssapi_krb5.so
libraries (via python-ldap
, as explained in #200), what are the problems you would expect to see?
If you are lucky, random crashes, if not undebuggable behaviors.
As for your CI problem you have have multiple stages where you build the artifact or your own wheel using one container and share the binaries with the final one. That allows you to avoid having the development headers and build tools present in the final image but still have the compiled module code.
Sure, I think we'll look into that approach for CI.
We also hit this problem regularly on developer workstations. It's difficult for newer developers to get started with Python scripts or apps that use gssapi-enabled web services.
(This is an RFE, not a bug report.)
pip install requests-gssapi
pulls ingssapi
, andgssapi
depends on several development libraries being available. On Fedora and RHEL, it requiresgcc
,krb5-devel
, and the relevantpython3-devel
package (eg.python3.11-devel
if using thepython3.11
stack).In CI containers, we try to keep the installed libraries to a minimum.
Looks like you already ship precompiled wheel files for Mac and Windows. Would you consider doing the same for Linux? (https://pypi.org/project/pysequoia/#files is a good example of doing this.)