Commit graph

14 commits

Author SHA1 Message Date
Mislav Marohnić
efe73b4841
Fix compiling Ruby < 2.5 by omitting --with-ext
Using `--with-ext=+` only has the indended effect (compiling all extensions that would normally get compiled) on Ruby 2.5+. On older versions, it causes none of the default extensions to get compiled, resulting in a defunct installation.
2023-11-24 22:08:28 +01:00
Mislav Marohnić
6250069ccb
Instruct Ruby to fail the build if openssl or psych are missing
Normally, Ruby `make` step will print a warning about any missing
extensions, but will not abort the build and instead proceed as normal.

Since Ruby installations without openssl or psych are essentially
broken, ruby-build used to have a `verify_openssl` build step to test if
the newly built Ruby can load these extensions, and print helpful
information and abort the build on errors:

    Loading the Ruby openssl extension failed
    ERROR: Ruby install aborted due to missing extensions

The `verify_opensl` implementation was necessary to provide a good
experience for ruby-build users, but was hacky and I would prefer to
eliminate it.

It appears that passing `--with-ext=openssl,psych` to the Ruby configure
step marks those extensions as mandatory and fails the `make` process if
they failed to build. This is exactly the behavior we want, so this
enables the configure option for all Ruby builds.
2023-11-21 17:12:53 +01:00
Mislav Marohnić
c6f8eb38cf
Print external commands that ruby-build executes
ruby-build now prints the full invocation of (almost) every external
command that it runs. Typically that is something like:

    -> ./configure --prefix=/path/to/ruby
    -> make -j 2
    -> make install

All output of these commands still goes to the log file by default.

This changes the behavior of `--verbose` mode to simply redirect all
command output to the stdout & stderr of the parent process instead of
writing to and then tailing the log file. This allows implementations of
commands like `./configure` or `make` to detect a terminal and output
color.
2023-11-07 09:48:04 +01:00
Mislav Marohnić
6b6fa457a0
Enable test assertions to spot erraneous word-splitting in bash 2023-10-11 18:02:07 +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ć
4079aa75cd
add stub_repeated test helper 2023-03-06 19:15:49 +01:00
Yuichiro NAITO
e38155a6da Fix to build with gcc on FreeBSD 2017-01-18 11:02:37 +09:00
Yuichiro NAITO
4dc6d7d7a4 add stub uname value for use_freebsd_pkg function 2016-11-24 17:50:09 +09:00
Mislav Marohnić
19a59f42cc Ignore RUBY_CONFIGURE_OPTS from environment in testing
Avoids failures caused by somebody's environment possibly having
RUBY_CONFIGURE_OPTS exported to have a value.
2014-11-16 16:07:39 -08:00
Mislav Marohnić
fc6e0ae69d Fix comparing OS X version when it has 3 components 2014-10-31 04:08:00 +01:00
Mislav Marohnić
84d61e8675 Unset CC to isolate from CI build environment 2014-10-28 18:03:14 +01:00
Mislav Marohnić
6e39eb52a8 Use CC=clang by default on Yosemite to avoid gcc-4.2
Newer MRIs will pick up gcc-4.2 from PATH and use that instead of
`/usr/bin/gcc`. While this worked up till now, it will not work in
Yosemite anymore since Homebrew's apple-gcc42 is generally not
compatible with 10.10.

So when CC has not explicitly been set, set it to `clang` to avoid
searching the PATH for any other gcc versions. This fixes MRI builds on
systems where apple-gcc42 is installed.
2014-10-28 15:28:07 +01:00
Mislav Marohnić
dafba300b1 Silence warnings when testing gccs
This silences the warning that gcc-4.2 produces on Yosemite:

    couldn't understand kern.osversion `14.0.0'
2014-10-28 10:59:01 +01:00
Mislav Marohnić
10fd04909d Fix Yosemite builds that use gcc-4.2 through require_gcc
The definitions that use `require_gcc` are not compatible with Apple's
clang-powered `gcc` and need gcc-4.2 from Homebrew. However, builds
using gcc-4.2 fail on Yosemite with a warning:

    couldn't understand kern.osversion `14.0.0'

Although the warning is non-fatal, the build goes to shit from there. It
seems that setting the magical value `MACOSX_DEPLOYMENT_TARGET=10.9`
makes the build work and doesn't seem to have negative consequences.
2014-10-28 10:58:38 +01:00