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

Add pre-compiled binaries for Electron on arm #662

Closed
mrfelton opened this issue Nov 28, 2018 · 6 comments
Closed

Add pre-compiled binaries for Electron on arm #662

mrfelton opened this issue Nov 28, 2018 · 6 comments

Comments

@mrfelton
Copy link
Contributor

Problem description

Please add pre-compiled binaries for Electron on Arm.

Reproduction steps

We are unable to install grpc-node on Arm (Raspberry Pi). There are no pre-compiled binaries and when falling back to building from source the build is failing.

Browsing through the list of available binaries we can see that there are no Electron binaries for Arm (there are arm binaries for Node though)

Environment

  • OS name, version and architecture: [e.g. Linux Ubuntu 18.04 amd64]: linux, arm
  • Node version [e.g. 8.10.0]: 10.4.1
  • Node installation method [e.g. nvm]: system
  • If applicable, compiler version [e.g. clang 3.8.0-2ubuntu4]: glibc
  • Package name and version [e.g. [email protected]]: [email protected]

Additional context

node-pre-gyp WARN Tried to download(404): https://node-precompiled-binaries.grpc.io/grpc/v1.15.1/electron-v3.0-linux-arm-glibc.tar.gz
node-pre-gyp WARN Pre-built binaries not found for [email protected] and [email protected] (electron-v3.0 ABI, glibc) (falling back to source compile with node-gyp)

@nicolasnoble
Copy link
Member

I'm sorry, but I must decline this request, for several reasons.

First, while distributing prebuilt binaries for node on arm makes sense from a deployment perspective, especially since Amazon is now offering arm servers, the deployment model of electron apps is for the developer to ship pre-packaged apps. Since there's no npm install needed by the end user of an electron app, the prebuilt binary would only be helpful for the developer of said electron app, so the number of users for said prebuilt binaries is much lower.

Then, we'd rather help you fix building from source. You haven't shared the build failure exactly, but since you're on 1.15.1, I'm suspecting this was the failure from node-pre-gyp that got fixed with grpc 1.16.1. Please retry there. Or even, we can also accept a pull request from you to modify our build system to start cross compiling arm binaries for electron. This isn't necessarily easy.

Finally, if you're using electron 3.x, then our pure javascript variant of grpc should work there. Please consider using it instead if there's too much friction with using the native one.

@mrfelton
Copy link
Contributor Author

@nicolasnoble I understand. The issue though is that it's not our developers that are facing the issue - it's any user that is trying to run code from the master branch.

All the log details from various build attempts that one of these users has provided can be seen here - LN-Zap/zap-desktop#760

@nicolasnoble
Copy link
Member

And here lies the rub too: https://github.com/LN-Zap/zap-desktop/releases you're not releasing any arm binaries yourselves, for which you're transitively asking us to fill the gap for you here.

Note that I haven't closed the issue nor flagged it as incorrect: I do believe your request is quite valid, but we certainly think that the bang-per-buck here just isn't there for us. Doing the arm cross compilation work is tricky and it certainly caused us some headaches just to get the normal nodejs ones going, including a few bugs I've managed to find in the compiler suite shipped by Debian. We need to consider the investment of our time carefully is all I'm saying, and we still have a huge amount of work elsewhere that has higher priority.

Glancing at the issue you've linked however, I am now certain the issues were the ones fixed from node-pre-gyp, meaning that [email protected] should work much better building from source, so my other suggestions are still valid, including the pure javascript version. I haven't looked deeply into your grpc usage however, so I'm not sure how feasible these options are for you.

@AnotherDroog
Copy link

Thanks, it was useful to know that [email protected] builds on ARM

@murgatroid99
Copy link
Member

The grpc package is now deprecated, so we do not intend to add any new targets to our binary support matrix. We recommend using @grpc/grpc-js instead.

@vamsideepak
Copy link

I am getting below error when I ran the electron application.
ERROR Error: Uncaught (in promise): Error: Invalid package C:\Users\user\Desktop\MockServer\xxx\node_modules\electron\dist\resources\electron.asar
Error: Invalid package C:\Users\user\Desktop\MockServer\xxx\node_modules\electron\dist\resources\electron.asar

I am using :
"@grpc/grpc-js": "1.8.14",
"@grpc/proto-loader": "0.7.7",
"electron": "24.3.0",
"electron-builder": "23.3.3",
"electron-rebuild": "3.2.9",
"electron-reload": "1.5.0",

and my node version is 18.16.0 on windows 11.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants