noirello / bonsai

Simple Python 3 module for LDAP, using libldap2 and winldap C libraries.
MIT License
116 stars 32 forks source link

No wheels available for Linux #73

Open septatrix opened 1 year ago

septatrix commented 1 year ago

It looks like there are currently no wheels available on Linux, no clue about other platforms. This means that every install has to build bonsai from source.

Are there plans to build and upload wheels for the current version? Maybe create a Github action for building and publishing?

noirello commented 1 year ago

It's a little bit complicated to create manylinux wheels for bonsai.

It has quite significant library dependencies. One of them is libssl, which included in a wheel could cause problems in certain cases with other modules depending on it (e.g. the ssl module). By distributing the SSL library with the wheel would also mean that any security vulnerabilities found in the library would require a new module release as well to fix them (while the source distribution can rely on a simple OS package upgrade).

These are the reasons why the psycopg2 module has a completely separate package (psycopg2-binary) that's not recommended for production use, just for quick start.

Nevertheless, I've tried to create a manylinux wheels for the module recently, thought that I would distribute it similar to the psycopg2 module with the same restrictions. But I ran in to another problem related to the sasl2 library. This library loads other libraries dynamically at run-time, depending on which authentication mechanism is used for binding. That makes it even trickier to create a working wheel. Unfortunately, I'm lack of knowledge about library linking and wheel distribution to solve this problem. :/