2022-09-23 12:00:15 -07:00
|
|
|
# stargazing
|
|
|
|
|
|
|
|
this repository contains experiments
|
|
|
|
in building third-party software against
|
|
|
|
[cosmopolitan libc.](https://justine.lol/cosmopolitan/)
|
|
|
|
the provided scripts produce APEs
|
|
|
|
(Actually Portable Executables) that run on
|
|
|
|
Linux, Mac, Windows, FreeBSD, OpenBSD, and NetBSD.
|
|
|
|
**however,** despite *running* on all platforms,
|
|
|
|
not every feature is available on every platform.
|
|
|
|
cosmopolitan already does a tremendous job at
|
|
|
|
polyfilling missing features across platforms,
|
|
|
|
but pre-existing software still takes a lot of
|
|
|
|
tweaking to before becoming fully functional.
|
2022-09-23 12:04:33 -07:00
|
|
|
|
|
|
|
## notes
|
|
|
|
|
|
|
|
### Docker
|
|
|
|
|
2022-09-23 12:09:14 -07:00
|
|
|
this project uses [Dockerfiles][df] to allow for *mostly-reproducible* builds.
|
|
|
|
[podman][podman] is used instead of docker, because the official docker software
|
|
|
|
is commercial and obnoxious.
|
|
|
|
|
2022-09-23 12:04:33 -07:00
|
|
|
**neither docker nor podman is required for executing the binaries.**
|
2022-09-23 12:09:14 -07:00
|
|
|
binaries are to be isolated and extracted from the resulting containers.
|
|
|
|
those binaries can then be transferred across platforms, like any other APE.
|
|
|
|
|
|
|
|
[podman]: https://docs.podman.io/en/latest/markdown/podman-build.1.html
|
|
|
|
[df]: https://docs.docker.com/engine/reference/builder/
|
2022-09-23 12:04:33 -07:00
|
|
|
|
|
|
|
in the future, it would be nice to use something
|
2022-09-23 12:09:14 -07:00
|
|
|
like what [Void Linux][void] does for its packages,
|
2022-09-23 12:04:33 -07:00
|
|
|
which would entirely sidestep the clunkiness
|
|
|
|
of Dockerfiles and working with containers.
|
|
|
|
|
2022-09-23 12:09:14 -07:00
|
|
|
[void]: https://github.com/void-linux/void-packages
|
|
|
|
|
|
|
|
make no mistake, this project does *not* strive for reproducible builds
|
|
|
|
[in any way that nix does.](https://nixos.org/guides/how-nix-works.html)
|
2022-09-23 12:13:52 -07:00
|
|
|
|
|
|
|
### Host OS
|
|
|
|
|
|
|
|
this project must be built on a host running Linux.
|
|
|
|
if you are not running Linux, use a VM of some sort.
|
|
|
|
i personally use VirtualBox running Alpine Linux.
|
|
|
|
i have not tried building with WSL2.
|