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.
Add examples of passing a custom build definition file in place of a
'known' ruby version. This is meant to more clearly document how users
might use a custom build definition for a recently-released ruby that is
not yet bundled in ruby-build.
Additionally, document in the readme how to use `RUBY_BUILD_DEFINITIONS`
path environment variable to provide a _collection_ of custom build
definitions. This is meant to give guidance on how an organization might
share multiple custom build definitions, or downstream users of
ruby-build (like asdf-ruby) might publish unreleased rubies for
installation.
- quibbling over wording: custom build defs _are_ recognized by
ruby-build, just not bundled or available out of the box.