Commit graph

683 commits

Author SHA1 Message Date
Mislav Marohnić
f6923c65f0
Fix checking system OpenSSL version
The value of OPENSSL_VERSION_TEXT seems to be printed in double quotes.
2023-11-05 13:56:45 +01:00
Mislav Marohnić
31e53468b6
Automatically link to Homebrew OpenSSL
If a system OpenSSL version was not found or is at version that is incompatible with a Ruby being installed, ruby-build would typically download and compile a new OpenSSL version scoped to that Ruby installation.

Now the `needs_openssl` condition will also check for Homebrew-installed OpenSSL and automatically link to the first one found that satisfies the version requirement. This primarily helps speed up Ruby installation on macOS where the system OpenSSL is never compatible and where Homebrew is a de-facto standard package manager.
2023-11-02 13:53:50 +01:00
Mislav Marohnić
8f294c43ad
Allow inline arguments in --if conditions
Example:

    install_package openssl-1.1 "https://..." --if needs_openssl:1.0.1-3.1.x

In the example, the two values are passed as arguments to the `needs_openssl` function.
2023-11-02 13:53:30 +01:00
Benoit Daloze
8afc6e179b ruby-build 20231025 2023-10-25 11:57:47 +02:00
Benoit Daloze
39f77ffd17 Skip ri/rdoc when installing jruby-launcher 2023-10-23 12:28:10 +02:00
Mislav Marohnić
c3bae8b6a9 Fix fixing JRuby shebangs on macOS
LC_CTYPE is "utf-8" on macOS, which instructs utilities like `tr` to expect Unicode input. However, in case of binary files, which we here explicitly guard against, the utility will fail because of invalid input encoding.

The solution is to set LC_CTYPE=C which effectively removes the expectation around input encoding and allows `tr` to process the input byte-by-byte.
2023-10-23 12:11:16 +02:00
Mislav Marohnić
db600ccdfd TruffleRuby: remove explicit openssl@1.1 requirement on macOS
TruffleRuby build definitions used to explicitly rely on `brew --prefix openssl@1.1` on macOS and abort installation if that was not found. However, this check didn't take into account that the user might have set OPENSSL_PREFIX in their environment, or that they have another `openssl@*` version installed via Homebrew. This change removes the `use_homebrew_openssl` check and allows TruffleRuby to perform its own OpenSSL detection.

https://github.com/oracle/truffleruby/blob/vm-23.1.0/lib/truffle/truffle/openssl-prefix.rb#L14-L17
2023-10-20 15:09:45 +02:00
Mislav Marohnić
fe933abbf8
Merge pull request #2271 from rbenv/ldflags-clean
Remove implicit LDFLAGS, CPPFLAGS, and "ldflags_dirs" build step
2023-10-16 18:19:29 +02:00
Mislav Marohnić
aada31aed5
Avoiding excessive cd when fetching git repos (#2273) 2023-10-16 14:40:04 +02:00
Mislav Marohnić
7a741cfb68
Merge pull request #2270 from rbenv/openssl-clean
Cleanup in OpenSSL compilation step
2023-10-16 14:38:58 +02:00
Mislav Marohnić
1d9b4e268f
Merge pull request #2274 from rbenv/ruby-configure-opts
Avoid compiling OpenSSL if the user supplied `--with-openssl-dir` on the command line
2023-10-14 14:01:09 +02:00
Mislav Marohnić
7773f82f74 Cleanup in truffleruby+graalvm installation
Reuse original `build_package_copy` instead of having to maintain an additional `build_package_copy_to` step.

As a bonus, this prevents a global variable `to` from leaking.
2023-10-14 12:30:53 +02:00
Benoit Daloze
536495d1d3 ruby-build 20231014 2023-10-14 12:19:11 +02:00
Mislav Marohnić
9b8749105f
Avoid compiling OpenSSL if the user supplied --with-openssl-dir on the command line
Same with linking libyaml, gmp, etc. to Homebrew. This considers all user configuration inputs when checking for existing flags.
2023-10-13 19:52:42 +02:00
Mislav Marohnić
47eda17460
Remove implicit LDFLAGS, CPPFLAGS, and "ldflags_dirs" build step
The default settings for LDFLAGS and CPPFLAGS were there since the initial commit to ruby-build:

    LDFLAGS="-L${PREFIX_PATH}/lib"
    CPPFLAGS="-I${PREFIX_PATH}/include"

However, it's not clear to me what these settings help with. A typical Ruby installation will initialize files in these directories, but it will do so regardless of the environment variables.

So, let's remove them and see what breaks.
2023-10-13 19:21:04 +02:00
Mislav Marohnić
6663720fca
Cleanup in openssl compilation step
- The `make -j 1` workaround seems neither in effect nor necessary anymore
- Assume that KERNEL_BITS workaround isn't necessary anymore
- Declare more variables as local
2023-10-13 19:05:31 +02:00
Benoit Daloze
216084d334 Add RUBY_BUILD_TARBALL_OVERRIDE to override the ruby tarball URL
* Update the check for whether a package is a ruby.
2023-10-12 11:48:03 +02:00
Benoit Daloze
4bf2fece5e ruby-build 20231012 2023-10-12 11:46:39 +02:00
Mislav Marohnić
b4b1dd20ce
Enable shellcheck parsing of ruby-build source (#2268) 2023-10-12 11:10:43 +02:00
Mislav Marohnić
d9bdc904b9
💅 RUBY_CONFIGURE_OPTS_ARRAY 2023-10-11 18:02:07 +02:00
Mislav Marohnić
fbdf88cc13
Accept ruby configuration flags as extra position arguments on the command line 2023-10-11 18:02:07 +02:00
Mislav Marohnić
f7d63b7dcb
Rework argument parsing to error out on invalid flags 2023-10-11 18:02:07 +02:00
Mislav Marohnić
c8927eefd0
Expand parse_options to preserve positional arguments after "--" 2023-10-11 15:05:03 +02:00
Thomas Hurst
4cec390699
Set default MAKE=make on FreeBSD (#2263)
This was set to gmake in https://github.com/rbenv/ruby-build/pull/1381
as a workaround for https://bugs.ruby-lang.org/issues/16331

YJIT builds in Ruby 3.3 previews require the use of BSD make on these
platforms, and no supported version of MRI requires the use of gmake, so
revert this.

JRuby continues to require gmake for jruby-launcher.

Fixes #2262

Co-authored-by: Mislav Marohnić <git@mislav.net>
2023-10-11 12:19:40 +02:00
Benoit Daloze
bfffe34ba1 ruby-build 20230919 2023-09-19 15:05:22 +02:00
Benoit Daloze
f80eb466b9 ruby-build 20230914.1 2023-09-14 18:24:20 +02:00
Hiroshi SHIBATA
1fb355bc69
ruby-build 20230914 2023-09-14 16:31:47 +09:00
João Duarte
c6e924edc8
workaround jruby#7799 by updating rubygems for JRuby 9.2.x (#2246)
Co-authored-by: Mislav Marohnić <git@mislav.net>
2023-09-12 16:08:47 +02:00
Hiroshi SHIBATA
2054401317
ruby-build 20230912 2023-09-12 07:03:32 +09:00
Benoit Daloze
97c93c6901 ruby-build 20230904 2023-09-04 20:47:19 +02:00
Mislav Marohnić
4d4678bc1e
Merge pull request #2231 from rbenv/llvm-cleanup
Remove `require_llvm` implementation
2023-08-08 10:43:56 +02:00
Mislav Marohnić
2dec28caf7
Merge pull request #2232 from rbenv/clang-cleanup
Remove `require_gcc` implementation
2023-08-04 10:53:15 +02:00
Ryan S. Northrup (RyNo)
f170c16c4a
Display the actual error when testing for Ruby's openssl extension (#2223)
I was encountering some build issues on MicroOS and needed the actual exception message in order to pinpoint a workaround.

Co-authored-by: Mislav Marohnić <git@mislav.net>
2023-08-03 16:54:27 +02:00
Mislav Marohnić
a4c6878ff5
Remove require_gcc implementation
This was only used in Ruby versions < 1.9.3, which are now EOL.

This also removes a 11-years old workaround for building Ruby 2.0 with clang.
06d7994bcf
2023-08-03 14:53:52 +02:00
Mislav Marohnić
ad1e1bc1ba
Remove require_llvm implementation
This was used by Rubinius over the years to ensure that a correct llvm version was selected from the ones available on the system, but for recent Rubinius this function is a no-op, and since Rubinius isn't an actively maintained project anymore, I don't feel strongly for keeping ruby-build workarounds that only help ancient Rubinius versions.
2023-08-03 14:34:39 +02:00
MatasNed
3d9d2cc6b4 Show openssl version used from homebrew by default 2023-08-01 16:06:42 +02:00
Benoit Daloze
35e5d2a29d ruby-build 20230717 2023-07-17 13:26:52 +02:00
Hiroshi SHIBATA
0d96e83ea3
ruby-build 20230710 2023-07-10 09:21:50 +09:00
Benoit Daloze
895f8fa40f ruby-build 20230615 2023-06-15 11:52:12 +02:00
Benoit Daloze
72b70a1049 ruby-build 20230614 2023-06-14 10:26:23 +02:00
Hiroshi SHIBATA
4effe8661b
ruby-build 20230608 2023-06-08 07:30:28 +09:00
Hiroshi SHIBATA
dc6d1973d5
ruby-build 20230512 2023-05-12 22:02:43 +09:00
Benoit Daloze
b57c7a8570 ruby-build 20230428 2023-04-28 15:35:15 +02:00
Benoit Daloze
3e196fd567 Add TruffleRuby+GraalVM 23.0.0-preview1 2023-04-28 15:34:57 +02:00
Benoit Daloze
7ed052655b ruby-build 20230424 2023-04-24 21:41:05 +02:00
Jarmo Pertman
b80e686b6e
Fix compilation of Ruby 3.2.x on FreeBSD (#2187)
* Use pkg info for readline/libedit prefix on FreeBSD instead of hardcoding it
* Use yaml and ffi installed via pkg on FreeBSD
* Remove check for FreeBSD version and allow all versions
2023-04-23 20:00:21 +02:00
Mislav Marohnić
855b9630c1
ruby-build 20230330 2023-03-30 18:01:50 +02:00
Hiroshi SHIBATA
659f089531
ruby-build 20230309 2023-03-09 10:38:37 +09:00
Mislav Marohnić
fea57ceae1
ruby-build 20230306 2023-03-06 20:28:55 +01:00
Roman Usherenko
40af31b46b
automatically detect and use Homebrew's libyaml
Co-authored-by: Mislav Marohnić <git@mislav.net>
2023-03-06 19:14:40 +01:00