PyOxidizer
PyOxidizer copied to clipboard
FreeBSD support
The documentation says:
The general approach should work for other operating systems.
What would it entail to extend support for FreeBSD? Are there any major blockers to doing that?
The main blocker is teaching https://github.com/indygreg/python-build-standalone to produce a standalone Python distribution compiled for [Free]BSD. I imagine that will look a lot like how the Linux build is performed. We may want to rename the cpython-linux directory to cpython-unix and then teach it to run on BSDs.
FWIW I would like to support BSDs. I just haven't had the time to produce a Python distribution yet.
I am looking into creating a freebsd port for pyoxidizer. One issue is that the pypi download page only has binary wheel packages. This 'issue' not be the right place for this request, but does it make sense to provide an sdist for releases published on pypi? If so, what's the right place to make a change to get that to occur?
PyOxidizer is written in Rust and an sdist wheel doesn't make much sense. The wheels exist mostly to facilitate turnkey installation of the binary for Python developers. For FreeBSD, I would encourage the creation of a port for PyOxidizer.
But, PyOxidizer for BSDs won't work until we produce BSD versions of the special Python distributions that PyOxidizer requires (see my last comment on this issue). The python-build-standalone build system will likely "just work" on BSDs with minimal changes. However, we would need a reliable way to produce BSD distributions in order to perform releases. This would ideally entail CI jobs producing FreeBSD distributions. Although I could potentially fire up some BSD VMs if it came to that.
Potentially relevant: clang can cross-compile to FreeBSD (we recently switched in production to building this way in a docker container, instead of having to run a FreeBSD VM).
I'm using cx-Freeze, which works on FreeBSD - giving that particular project a +1 in this regard. It outputs a binary file, plus a folder of libs through - so not as nice as having a single file.