The upcoming version has been updated from Ruby 3.5 to Ruby 4.0.
6d81969b47
A Ruby built with ruby-build's 3.5-dev already shows version 4.0.0dev.
```console
$ rbenv install 3.5-dev
(snip)
$ ruby -v
ruby 4.0.0dev (2025-11-08T11:52:39Z master 4365c4fb6b) +PRISM [arm64-darwin24]
```
Therefore, it would make sense to make it installable with `rbenv install 4.0-dev`.
NOTE: Since there was no `rbenv install 2.8-dev` before it was updated to `rbenv install 3.0-dev`,
`3.5-dev` is not kept either.
This happens while compiling OpenSSL or any other non-Ruby package:
ruby-build: line 723: [: : integer expression expected
This was because $ruby_semver was checked as a numeric value but was never set.
37signals are dropping AWS, which means goodbye to S3 and CloudFront.
The CloudFront mirror (dqw8nmjcqpjn7.cloudfront.net) was introduced ages
ago to address intermittent unavailability from some upstream sources.
These days, it mainly serves non-MRI packages like OpenSSL and libyaml.
Ruby releases are now served by Fastly (cache.ruby-lang.org) which has
bypassed the ruby-build mirror since 2015. Other sources (GitHub, RubyGems,
Maven) have their own CDNs.
This change removes the default `RUBY_BUILD_MIRROR_URL` and S3 release
mirroring. Custom mirror support remains.
System openssl version reported by `pkg-config --modversion openssl` might end
with a letter, e.g. "1.0.2k", due to OpenSSL versioning policy prior to OpenSSL v3:
https://www.openssl-library.org/policies/general/versioning-policy/#history
The letter would trip up the normalize_semver function due to it only handling numbers.
This change switches to semver parsing via awk instead of doing it clumsily in
bash. This also changes the multiplication factor of major version numbers,
from 100000 to 10000, and adjusts static version comparisons accodingly.
Skip downloading and building OpenSSL if a compatible version was found with pkg-config, but only if that openssl version isn't under Homebrew's "cellar".
---------
Co-authored-by: Mislav Marohnić <git@mislav.net>
Commit f661b64cab that restores `bin/jruby.sh` for
all JRuby versions has an undesired effect on JRuby 9.3 when it pulls in
jruby-launcher v2. Since JRuby 9.3 is EOL and won't get a fix for this, at least
attempt to fix this in ruby-build since until recently JRuby 9.3 worked.
The fix is that JRuby 9.3 (and only those versions) are not allowed to install
jruby-launcher versions 2.0 or greater.