Skip to content
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

RFE: provide manylinux binary wheel package #343

Open
ktdreyer opened this issue Apr 22, 2024 · 5 comments
Open

RFE: provide manylinux binary wheel package #343

ktdreyer opened this issue Apr 22, 2024 · 5 comments

Comments

@ktdreyer
Copy link

(This is an RFE, not a bug report.)

pip install requests-gssapi pulls in gssapi, and gssapi depends on several development libraries being available. On Fedora and RHEL, it requires gcc, krb5-devel, and the relevant python3-devel package (eg. python3.11-devel if using the python3.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.)

@ktdreyer ktdreyer changed the title provide manylinux binary wheel package RFE: provide manylinux binary wheel package Apr 22, 2024
@jborean93
Copy link
Contributor

Unfortunately this is not really possible for Linux. See #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:

  • Windows doesn't need to pass the auditwheel requires so can link to a dll that is not provided in the wheel, it requires you to already have the gssapi dll present
  • macOS is built against the OS provided GSSAPI library GSS.Framework so we don't have concerns about loading multiple copies of the gssapi library

@ktdreyer
Copy link
Author

Thank 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?

@simo5
Copy link
Contributor

simo5 commented Apr 23, 2024

If you are lucky, random crashes, if not undebuggable behaviors.

@jborean93
Copy link
Contributor

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.

@ktdreyer
Copy link
Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants