-
Notifications
You must be signed in to change notification settings - Fork 10.7k
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
Unable to install with Ruby 3.0.0 #25060
Comments
I'm also seeing this error, full output is below:
|
This might not be directly related to ruby 3. It is probably some change in default flags for the compilers on newer versions. Adding
Those should be included in the files that need it. Probably missing rb_grpc.h to be included. |
Interestingly in compile fine for me on Linux, but I have the same issue on OSX
Did work for me as well. Thanks!
For this one I managed to work around by patching the gem with:
It's dirty, but was enough to unblock me until it is fixed upstream. |
This issue appears to be impacting not only the GRPC Ruby Gem, but also the grpcio Python package. I'm able to consistently repro the following on Mac OS X Catalina (10.15.7) when installing version 1.32.0 of grpcio:
I'm using the following dependencies:
Interestingly, I'm hitting no such issue when attempting to install the latest stable version of |
To update, I'm looking at backporting #25133 to the 1.35.x branch. This should then be fixed in the next 1.35.x release (should happen within the next the next week or two). Also, #25070 was merged and is included on the 1.35.x branch, so the 1.35.x gems won't need to be built from source, since the gems will contain pre-compiled libraries that work on ruby 3.0. The 1.35.0.pre1 gem is currently available. |
Sorry for the inconvenience, I'm a ruby coder but I'm not an expert, is it possible to explain to me the procedure to follow to patch the gem? (just how to create & apply the patch) Thank you!
|
It's quite tricky, I had to extract the Given that you are on Ruby 2.5 you should be able to use the precompiled gem, so I wouldn't recommend going this route. Check your |
Thank you for your quick reply! I have this for
I don't know if it's useful, but here is what I have for
Do you have any idea what I could do to fix this problem? Thank you! EDIT: I tried |
Try: |
Thank you so much, it worked !! 🎉 |
See for example oracle/truffleruby#2267 but I think really there's some other issues around headers - also see grpc#25060
@apolcyn I noticed something weird with the darwin packages.
However the linux packages are fine:
This causes the following error on OSX:
|
Please note that this work simplifies the Darwin rubygem build, and addresses inconsistencies in packaging that result in issues like grpc#25060, but introduces some notable changes: - ships "x86_64-darwin" and "arm64-darwin" platform gems - stops shipping "universal-darwin" platform gem - drop support for i386 darwin It's unclear to me whether grpc should continue to support i386 Darwin, and so I'm open to learning more about this. Related to: - grpc#25429 - grpc#25755 - grpc#25756
Using RCD for these platforms unifies the Darwin native gem build process with the Linux native gems, which should help avoid inconsistencies in packaging that result in issues like the missing Ruby 3.0 binaries in grpc#25060. Please note that this change leaves the "universal-darwin" platform native gem untouched, but provides a path forward if the project ever decides to drop "universal" binary support. Related to: - grpc#25429 - grpc#25755 - grpc#25756
Using RCD for these platforms unifies the Darwin native gem build process with the Linux native gems, which should help avoid inconsistencies in packaging that result in issues like the missing Ruby 3.0 binaries in grpc#25060. Please note that this change leaves the "universal-darwin" platform native gem untouched, but provides a path forward if the project ever decides to drop "universal" binary support. Related to: - grpc#25429 - grpc#25755 - grpc#25756
Using RCD for these platforms unifies the Darwin native gem build process with the Linux native gems, which should help avoid inconsistencies in packaging that result in issues like the missing Ruby 3.0 binaries in grpc#25060. Please note that this change leaves the "universal-darwin" platform native gem untouched, but provides a path forward if the project ever decides to drop "universal" binary support. Related to: - grpc#25429 - grpc#25755 - grpc#25756
Using RCD for these platforms unifies the Darwin native gem build process with the Linux native gems, which should help avoid inconsistencies in packaging that result in issues like the missing Ruby 3.0 binaries in grpc#25060. Please note that this change leaves the "universal-darwin" platform native gem untouched, but provides a path forward if the project ever decides to drop "universal" binary support. Related to: - grpc#25429 - grpc#25755 - grpc#25756
Using RCD for these platforms unifies the Darwin native gem build process with the Linux native gems, which should help avoid inconsistencies in packaging that result in issues like the missing Ruby 3.0 binaries in grpc#25060. Please note that this change leaves the "universal-darwin" platform native gem untouched, but provides a path forward if the project ever decides to drop "universal" binary support. Related to: - grpc#25429 - grpc#25755 - grpc#25756
Using RCD for this platform unifies the Darwin native gem build process with the Linux native gems, which should help avoid inconsistencies in packaging that result in issues like the missing Ruby 3.0 binaries in grpc#25060. Please note that this change leaves the "universal-darwin" platform native gem untouched, but provides a path forward if the project ever decides to drop "universal" binary support. Related to: - grpc#25429 - grpc#25756
Updating to 1.37.0 worked for me. |
Yes this should be fixed in 1.37.0 and onwards (which includes #25429), closing |
Using RCD for this platform unifies the Darwin native gem build process with the Linux native gems, which should help avoid inconsistencies in packaging that result in issues like the missing Ruby 3.0 binaries in grpc#25060. Please note that this change leaves the "universal-darwin" platform native gem untouched, but provides a path forward if the project ever decides to drop "universal" binary support. Related to: - grpc#25429 - grpc#25756
Using RCD for this platform unifies the Darwin native gem build process with the Linux native gems, which should help avoid inconsistencies in packaging that result in issues like the missing Ruby 3.0 binaries in grpc#25060. Please note that this change leaves the "universal-darwin" platform native gem untouched, but provides a path forward if the project ever decides to drop "universal" binary support. Related to: - grpc#25429 - grpc#25756
Using RCD for this platform unifies the Darwin native gem build process with the Linux native gems, which should help avoid inconsistencies in packaging that result in issues like the missing Ruby 3.0 binaries in grpc#25060. Please note that this change leaves the "universal-darwin" platform native gem untouched, but provides a path forward if the project ever decides to drop "universal" binary support. Related to: - grpc#25429 - grpc#25756
Using RCD for this platform unifies the Darwin native gem build process with the Linux native gems, which should help avoid inconsistencies in packaging that result in issues like the missing Ruby 3.0 binaries in grpc#25060. Please note that this change leaves the "universal-darwin" platform native gem untouched, but provides a path forward if the project ever decides to drop "universal" binary support. Related to: - grpc#25429 - grpc#25756
Using RCD for this platform unifies the Darwin native gem build process with the Linux native gems, which should help avoid inconsistencies in packaging that result in issues like the missing Ruby 3.0 binaries in grpc#25060. Please note that this change leaves the "universal-darwin" platform native gem untouched, but provides a path forward if the project ever decides to drop "universal" binary support. Related to: - grpc#25429 - grpc#25756
Using RCD for this platform unifies the Darwin native gem build process with the Linux native gems, which should help avoid inconsistencies in packaging that result in issues like the missing Ruby 3.0 binaries in grpc#25060. Please note that this change leaves the "universal-darwin" platform native gem untouched, but provides a path forward if the project ever decides to drop "universal" binary support. Related to: - grpc#25429 - grpc#25756
* ruby: use squiggly heredoc for rake-compiler-dock commands * ruby: use `bundler exec` when building native gems * ruby: clean .{bundle,so} from src/ruby/lib when building native gems Failing to remove these files between native builds leads rake-compiler to establish circular dependencies (which may be a bug in rake-compiler, but this feels like an easy and good thing to do, anyway). * ruby: extract linux and darwin RUBY_PLATFORM checks into variables There were already "windows" and "bsd" flags, so let's improve consistency and readability, and set a clear pattern for subsequent flags. * ruby: rely on rake-compiler-dock v1.1.0 to set no_native correctly As of v1.1.0 there's no need to set this explicitly anymore; it will be true whenever the extension is being built in a RCD container. See rake-compiler/rake-compiler-dock@362890d * ruby: add "x86_64-darwin" platform gem Using RCD for this platform unifies the Darwin native gem build process with the Linux native gems, which should help avoid inconsistencies in packaging that result in issues like the missing Ruby 3.0 binaries in #25060. Please note that this change leaves the "universal-darwin" platform native gem untouched, but provides a path forward if the project ever decides to drop "universal" binary support. Related to: - #25429 - #25756
I attempted to install grpc 1.34.0 with native extensions, but I receive a build error when the gem is installing. Will there be any changes to make this gem compatible with ruby 3.0.0?
The text was updated successfully, but these errors were encountered: