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

macOS Apple M1/Arm Support #8062

Closed
etmartinkazoo opened this issue Nov 18, 2020 · 28 comments
Closed

macOS Apple M1/Arm Support #8062

etmartinkazoo opened this issue Nov 18, 2020 · 28 comments

Comments

@etmartinkazoo
Copy link

Are there plans to add macOS Apple M1/Arm Support. I'd like to install Mosh on my machine but Protocol Buffer is a required dependency. I imagine there will be a greater and greater demand for compatibility.

@acozzette
Copy link
Member

What build error are you getting?

@etmartinkazoo
Copy link
Author

The only Arm based package that I can see on the release page is protoc-3.14.0-linux-aarch_64.zip.

When adding the protoc binary to my PATH, I receive a cannot execute binary file when executing protoc --version in my terminal for example.

@acozzette
Copy link
Member

It might take us some time to be able to start publishing precompiled binaries for Apple ARM machines, but you should still be able to use protobuf by building from source.

@jurmous
Copy link

jurmous commented Jan 3, 2021

Why was this issue closed? I still see no precompiled binaries for Mac arch 64? I am particularly interested in a precompiled Java build.

   > Could not find protoc-3.14.0-osx-aarch_64.exe (com.google.protobuf:protoc:3.14.0).
     Searched in the following locations:
         https://jcenter.bintray.com/com/google/protobuf/protoc/3.14.0/protoc-3.14.0-osx-aarch_64.exe

@Eric-Arellano
Copy link

I'd love to see pre-compiled binaries for macOS Arm too, although I know that might be non-trivial. Is there anything a first-time contributor might be able to help with?

@NielsKSchjoedt
Copy link

NielsKSchjoedt commented Mar 4, 2021

It might take us some time to be able to start publishing precompiled binaries for Apple ARM machines, but you should still be able to use protobuf by building from source.

@acozzette how would you do that? - I'm unable to do so: #8372

@studyzy
Copy link

studyzy commented Apr 6, 2021

Why closed this issue?

@askdesigners
Copy link

LOL. Classic Google move.

@nresare
Copy link

nresare commented May 20, 2021

Having this Just Work™️ would be fantastic, and I think it makes sense to keep this issue open until then.

While waiting, I have had success by using the protoc binary from brew:

  • follow instructions on https://brew.sh to install brew
  • run brew install protobuf in a terminal.
    This should result in protoc being available in your path. Note that with the default zsh, the default shell on recent macOS, one needs to type the command rehash to detect newly installed binaries or changes to the PATH environment variable.

@bbeaupain
Copy link

bbeaupain commented May 23, 2021

Would really love to see some support for this - protobuf is an awesome project, and there are a lot of automated build systems (Maven for example) that break when including standard protobuf dependencies. M1 is most likely here to stay for quite a while and I'd be happy to provide remote access to an M1 machine if Google doesn't have them readily available.

@yuzawa-san
Copy link
Contributor

A stopgap solution was merged #8557 However this issue is about true native support, rather than reusing the x86_64 artifact, so I feel this issue should be reopened.

@vborbely
Copy link

vborbely commented Aug 4, 2021

What I did for a quick fix is that, I opened the project in Android Studio. I opened the Gradle section on the right, and looked for the problematic package (flutter_blue package in my case).
Then I right clicked -> Open Gradle config -> changed the 2 parts show below:

flutter_blue_protobuf

When I did a "flutter pub get" it did not appear. However, I feel it will go away with a "flutter clean".

I hope this helped for someone.

Good luck,
Viktor

@jurmous
Copy link

jurmous commented Oct 27, 2021

A compatible build was released with 3.18.0 and later which includes builds for osx-aarch_64. The Aarch_64 build is however not included in the 4.0.0 RC releases.

https://repo1.maven.org/maven2/com/google/protobuf/protoc/3.18.0/

@Eric-Arellano
Copy link

Hi, thanks so much for releasing Apple Silicon binaries at https://repo1.maven.org/maven2/com/google/protobuf/protoc/3.19.2/!

Would it be possible to please include a macOS ARM zip file with the GitHub release too, for folks who prefer downloading the zip file? https://github.com/protocolbuffers/protobuf/releases/tag/v3.19.4

malmi pushed a commit to collabree/flutter_blue that referenced this issue Apr 5, 2022
malmi added a commit to collabree/flutter_blue that referenced this issue Apr 5, 2022
feelsoftware pushed a commit to collabree/flutter_blue that referenced this issue Apr 20, 2022
schlosna added a commit to palantir/atlasdb that referenced this issue Apr 21, 2022
The old protoc version 3.5.1 atlasdb uses does not yet support Apple M1 aarch64
(see protocolbuffers/protobuf#8062), so use x86_64 until
atlasdb upgrades to protoc 3.18.0+ which add osx-aarch_64.
bulldozer-bot bot pushed a commit to palantir/atlasdb that referenced this issue Apr 27, 2022
Use protoc x86_64 on Apple M1 aarch64

The old protoc version 3.5.1 atlasdb uses does not yet support Apple M1 aarch64
(see protocolbuffers/protobuf#8062), so use x86_64 until
atlasdb upgrades to protoc 3.18.0+ which add osx-aarch_64.
@Eric-Arellano
Copy link

Eric-Arellano commented May 12, 2022

For anyone who missed it, macOS Arm is released via GitHub! https://github.com/protocolbuffers/protobuf/releases/tag/v3.20.1

Thank you so much to the folks who made this happen :)

cesdperez added a commit to cesdperez/grpc-kotlin-starter that referenced this issue Jun 9, 2022
protobuf added support for arm64 in version 3.20.1. See protocolbuffers/protobuf#8062

Also upgraded all other dependencies and plugins.

The project is now working on arm64.
@rkmaul
Copy link

rkmaul commented Jun 17, 2022

What I did for a quick fix is that, I opened the project in Android Studio. I opened the Gradle section on the right, and looked for the problematic package (flutter_blue package in my case). Then I right clicked -> Open Gradle config -> changed the 2 parts show below:

flutter_blue_protobuf

When I did a "flutter pub get" it did not appear. However, I feel it will go away with a "flutter clean".

I hope this helped for someone.

Good luck, Viktor

Mantep mas bro

CharlieLavers pushed a commit to CharlieLavers/ghidra that referenced this issue Jul 6, 2022
The appropriate osx executable was not included until 3.21.0-rc2 as mentioned in the release notes

protocolbuffers/protobuf#8062
@muava12
Copy link

muava12 commented Oct 28, 2022

What I did for a quick fix is that, I opened the project in Android Studio. I opened the Gradle section on the right, and looked for the problematic package (flutter_blue package in my case). Then I right clicked -> Open Gradle config -> changed the 2 parts show below:

flutter_blue_protobuf

When I did a "flutter pub get" it did not appear. However, I feel it will go away with a "flutter clean".

I hope this helped for someone.

Good luck, Viktor

I can't find that folder inside android/

@muava12
Copy link

muava12 commented Oct 28, 2022

What I did for a quick fix is that, I opened the project in Android Studio. I opened the Gradle section on the right, and looked for the problematic package (flutter_blue package in my case). Then I right clicked -> Open Gradle config -> changed the 2 parts show below:
flutter_blue_protobuf
When I did a "flutter pub get" it did not appear. However, I feel it will go away with a "flutter clean".
I hope this helped for someone.
Good luck, Viktor

Mantep mas bro

Kok saya gak nemu folder flutter_blue ya di dalam folder android??

@TaronVardanyan
Copy link

Hey people, if you want to use old version of protobuf on Mac Pro M1 (ARM) and getting CPU or protoc-gen-grpc-web plugin issues I'm suggesting to use Rosetta2, that helped me to resolve a problem.

@dumndunm
Copy link

Having this Just Work™️ would be fantastic, and I think it makes sense to keep this issue open until then.

While waiting, I have had success by using the protoc binary from brew:

* follow instructions on https://brew.sh to install brew

* run `brew install protobuf` in a terminal.
  This should result in `protoc` being available in your path. Note that with the default zsh, the default shell on recent macOS, one needs to type the command `rehash` to detect newly installed binaries or changes to the `PATH` environment variable.

It worked for me, thank you 😊

@azizur-rahaman
Copy link

what I have done,
Open android folder in Android Studio > from left bar open gradle view > from here find flutter_blue and then right on it and click config > change it with latest version

you will get the latest version from here: https://repo1.maven.org/maven2/com/google/protobuf/protoc/3.18.0/

Screenshot 2023-11-03 at 5 25 34 PM

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