Closed semaperepelitsa closed 5 months ago
I am all for ditching OpenSSL 1.x support in favor of 3.x. However, Ruby 3.0 was the last Ruby version that still use OpenSSL 1.1. Ruby 3.0 reaches EoL next March, 2024. Do we prematurely switch to OpenSSL 3.x now, or wait until next year? Considering there are still developers trying to install Ruby 2.7 for older Rails apps, I worry doing a hard-switch to openssl@3
would break things for developers still using Ruby 3.0.x.
The other option is to dynamically switch between openssl@3
and openssl@1.1
based on the Ruby version. However, homebrew seems to be the only package manager to provides both version families.
Considering there are still developers trying to install Ruby 2.7 for older Rails apps, I worry doing a hard-switch to openssl@3 would break things for developers still using Ruby 3.0.x.
Dynamically switching the OpenSSL version is certainly the least surprising solution for developers.
However, if this is not a solution with reasonable effort, wouldn't it be better if installing EOL (< Ruby 3.0) or near-EOL (Ruby 3.0) require workarounds and not installing current versions?
It seems like it might be nice to go ahead and make the jump since Ruby 3.0 lost regular maintenance on 2023-04-01.
Or 2024-03-31 is expected EOL for 3.0.
Tagging this for 0.10.0 and merged into the 0.10.0 branch.
OpenSSL 1.1.1 has officially reached EoL. https://www.openssl.org/blog/blog/2023/03/28/1.1.1-EOL/
I have recently added some logic to dynamically install the openssl@1.1
or openssl@3
homebrew package depending on the version of Ruby. See a37e332e055da91db5fb053a3d94ebb0f219043d This will be released shortly in ruby-install 0.9.3.
However, this comes with a few caveats:
-- --with-openssl-dir=/path/to/openssl@1.1
themselves.So sometime after March 31st, 2024, I will be removing the code and switching to OpenSSL 3.0 as the default homebrew/MacPorts openssl version.
Decided to change directions on this and keep the openssl@3
vs. openssl@1.1
logic based on the ruby version for a while longer. I also decided to convert the dependencies.txt
into dependencies.sh
files to allow for dynamic dependencies based on the ruby version or OS version.
https://github.com/postmodern/ruby-install/issues/477
With Ruby 3.1.4 I would get the following error when trying to install latest "puma" gem.
This is because Ruby is compiled with OpenSSL 1.1 instead of the latest OpenSSL 3. I had to reinstall Ruby with OpenSSL 3 to make it work:
According to https://github.com/puma/puma/issues/2790#issuecomment-1009044847 OpenSSL 3 is fully supported since Ruby 3.1. Should ruby-install just use the latest OpenSSL by default?