-
Notifications
You must be signed in to change notification settings - Fork 173
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
A openssl gem release supporting OpenSSL 1.0.1 and OpenSSL 3.0.0 #517
Comments
For TruffleRuby, we managed to change the minimum to OracleLinux 7/Ubuntu 16.04, and we now use the openssl gem 3.0.0. I think it is still worth to consider supporting OpenSSL 1.0.1 so CRuby 2.7&3.0 could support OpenSSL 3.0.0 too. |
I don't remember there was a change that specifically requires OpenSSL 1.0.2+ since then, so probably not much outside it to just make it compile. However, I want to avoid the cost that takes to maintain compatibility in the future when backporting stuff, which comes as a pair with doing so. I think it was a mistake to keep OpenSSL 1.0.1 compatibility until recently at all. IMHO, realistically, it's fine for Ruby 2.7/3.0 to drop support for 1.0.1. |
To my understanding, this should not be a problem anymore, for example, loading ruby/openssl built against OpenSSL 1.1 and libcurl built against OpenSSL 3.0 in the same process should work fine. I believe this used to break in Ruby < 2.4 because |
Interesting. IIRC it was still a problem when mixing OpenSSL 1.0.2 and 1.1. |
To be exact, it should be fine if the platform supports symbol versioning. At least GNU/Linux systems do. I think using Ruby 2.3's openssl built against OpenSSL 1.0.2 and libcurl built against OpenSSL 1.1 can be a problem. libcurl can run into a function defined in The same thing shouldn't happen on Ruby 2.4 as functions in |
The two issues about that I could find now:
So you might be right on Ruby 2.4+ this is no longer an issue. |
macOS doesn't have symbol versioning though, right? So if one uses e.g. a custom OpenSSL or LibreSSL from the system, and some gem like mysql2 which then depends on Homebrew's openssl we'd probably run into problems. |
Actually, I don't know about macOS. It's strange I don't find similar bug reports on macOS (considering that people casually have multiple OpenSSL installations on a system), so I wonder if something else is preventing it from happening. But it's possible it's just by chance. Windows shouldn't suffer from this because AFAIK symbols from one OpenSSL are not visible from another OpenSSL at all. |
In my understanding, the case of mysql2 gem with macOS and Homebrew are:
And they are inconsistent versions like 3.0.x and 1.1.x or others. But this problem was fixed with brianmario/mysql2#1135 at mysql2-0.5.4 |
Can we close this ticket? |
Maybe we can close it. Feel free to reopen if you think it is necessary. |
Hello,
In the context of https://bugs.ruby-lang.org/issues/18658#note-8, I would like to ask what would it take to support OpenSSL 1.0.1-3.0.0 in the Ruby openssl gem? (the current openssl gem release 3.0.0 supports libssl 1.0.2+, not 1.0.1).
Would it be "just" reverting https://github.com/ruby/openssl/pull/396/files or significantly more work?
cc @rhenium
This would enable multiple things:
cc @aardvark179
The text was updated successfully, but these errors were encountered: