psanford / wormhole-william

End-to-end encrypted file transfer. A magic wormhole CLI and API in Go (golang).
MIT License
1.07k stars 54 forks source link

Update build script to build for more architectures, fixes #77 #80

Closed Jacalz closed 1 year ago

Jacalz commented 2 years ago

This PR updates the build script to build arm64 binaires for FreeBSD, macOS and Windows. It also makes sure to add amd64 binaries to Windows. Lastly, the release action got updated to use the new Go 1.18.3 version for register based calling convention on arm64 as well as some security fixes.

Fixes #77

Release builds now also strip the DWARF data from binaries. This means that release binaries go from being 10MB to being 7MB instead.

psanford commented 2 years ago

Lets not strip the binaries. The size improvement is fairly minimal and having DWARF by default is useful.

psanford commented 2 years ago

I don't want to support os/arch'es that we don't actually have any users on or any way of testing against. I'm ok adding an "official" binary build for win/amd64 and darwin/arm64.

Jacalz commented 2 years ago

I don't want to support os/arch'es that we don't actually have any users on or any way of testing against. I'm ok adding an "official" binary build for win/amd64 and darwin/arm64.

I have a Raspberry Pi 4 that I can run FreeBSD arm64 on. Would that suffice as reason enough to add that binary?

If we don't have any users on the platforms it likely is because we didn't have binaries for them. I'd honestly be in favour of keeping Windows arm64 for that reason but I can certainly remove it for you.

Jacalz commented 2 years ago

Lets not strip the binaries. The size improvement is fairly minimal and having DWARF by default is useful.

Sounds sensible. I have backed out that change.

gaby commented 1 year ago

@psanford Any plans to merge this?

Jacalz commented 1 year ago

I have now updated the Go version to be 1.19.4 for the release binaries. Would you mind re-reviewing @psanford?