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

Publish macOS/arm64 binaries #5042

Closed
tstromberg opened this issue Nov 19, 2020 · 3 comments · Fixed by #5287
Closed

Publish macOS/arm64 binaries #5042

tstromberg opened this issue Nov 19, 2020 · 3 comments · Fixed by #5287
Assignees
Labels
kind/todo implementation task/epic for the skaffold team

Comments

@tstromberg
Copy link
Contributor

NOTE: No released version of Go supports macOS/arm64 as of this date, but v1.16 will. golang/go#38485 has some details on how to get started with making builds from the go trunk source code.

We may have to do something about code-signing on macOS/arm64

@MarlonGamez MarlonGamez added the kind/todo implementation task/epic for the skaffold team label Nov 24, 2020
@briandealwis briandealwis self-assigned this Jan 25, 2021
@briandealwis
Copy link
Member

Found a Go program, makefat, for producing multi-arch ("fat") binaries for macOS/Darwin.

@briandealwis
Copy link
Member

Support for darwin/arm64 requires using Go 1.16beta1. We currently build with cgo so that our file-watcher can take advantage of rjeczalik/notify's native capabilities (FSEvents, inotify, etc). We use a Docker-provided cross-building image (https://hub.docker.com/r/dockercore/golang-cross), which includes SDKs (toolchains, headers, and libraries) for Linux, Windows, and macOS. The included macOS SDKs are for 10.x however, and don't support building for darwin/arm64 which requires an SDK for macOS 11.x. The legality of including these SDKs is questionable, however.

#5286 is a stop-gap solution that disables using cgo for darwin/arm64 and uses rjeczalik/notify's kqueue support instead. The kqueue support has worse performance. But this at least works.

The better (legal) solution requires that we build on macOS and use the right SDKs. But we should also be signing our builds (#2154). I think the right solution is to move our builds into Kokoro. This is a more complex task.

@briandealwis
Copy link
Member

Error seen on start:

$ skaffold dev
ERRO[0000] failure getting variant                       error="getCPUInfo for OS darwin: not implemented"
...

This seems to have no effect.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/todo implementation task/epic for the skaffold team
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants