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

FreeBSD wheels #335

Open
rhelmot opened this issue Mar 9, 2023 · 1 comment
Open

FreeBSD wheels #335

rhelmot opened this issue Mar 9, 2023 · 1 comment

Comments

@rhelmot
Copy link

rhelmot commented Mar 9, 2023

Several python projects I work with list cmake in their pyproject.toml install_requires section. This is incredibly awkward on freebsd because there are no wheels available, and thus cmake has to be built from source. This takes a while, which is undesirable.

Would it be appreciated if I contributed a CI pass to build wheels for FreeBSD?

@henryiii
Copy link
Contributor

henryiii commented Mar 15, 2023

FreeBSD does not support redistributable wheels at all. There is no backward compatibility guarantee for wheels, or cross-BSD guarantee, so there can't be a "manybsd" image. You can't upload them to PyPI. If you want to work on wheels, that's where you'd have to start - propose a PEP for "manybsd", get gaurentees about being able to build binaries that support all future versions of all the BSDs, propose a tag name for it in a PEP, and add support for it to pip, PyPI, packaging, etc. This was done for musllinux a couple of years ago, so it's possible (but it relies on the compatibility guarantees I mentioned, which I've been told won't happen for BSD).

The problem is that packages shouldn't list cmake or ninja in your pyproject.toml at all. You should use something like scikit-build-core's mechanism, which only adds cmake if it's not installed via PEP 517 hooks. There's even a guide for doing this yourself in https://scikit-build.readthedocs.io/en/latest/usage.html#adding-cmake-as-building-requirement-only-if-not-installed-or-too-low-a-version.

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

2 participants