Commit graph

2363 commits

Author SHA1 Message Date
Hiroshi SHIBATA
a473f444de
ruby-build 20231225 2023-12-25 16:43:55 +09:00
Hiroshi SHIBATA
8eaf35d143
Merge pull request #2327 from rbenv/ruby-3-3-branch
Switch 3.3.0-dev to ruby_3_3 branch
2023-12-25 16:43:26 +09:00
Hiroshi SHIBATA
cbf7537be4
Switch 3.3.0-dev to ruby_3_3 branch 2023-12-25 16:35:38 +09:00
Hiroshi SHIBATA
a5708a2de4
Merge pull request #2326 from k0kubun/ruby-3.3.0
Add Ruby 3.3.0
2023-12-25 16:10:36 +09:00
Takashi Kokubun
38ad5276db Add Ruby 3.3.0 2023-12-24 23:01:28 -08:00
Hiroshi SHIBATA
d9cc94bbeb
Merge pull request #2325 from rbenv/use-bats-core
Use bats-core instead of archived version
2023-12-25 12:49:28 +09:00
Hiroshi SHIBATA
2a85ffaebd
Use bats-core instead of archived version 2023-12-25 12:29:01 +09:00
Hiroshi SHIBATA
1b66c8345d
ruby-build 20231211 2023-12-11 20:14:52 +09:00
Hiroshi SHIBATA
e5ea9efde5
Merge pull request #2323 from casperisfine/3.3.0-rc1
Add Ruby 3.3.0-rc1
2023-12-11 20:07:08 +09:00
Jean Boussier
5775055887 Add Ruby 3.3.0-rc1
https://www.ruby-lang.org/en/news/2023/12/11/ruby-3-3-0-rc1-released/
2023-12-11 09:32:45 +01:00
Mislav Marohnić
974ec230bd
Merge pull request #2322 from rbenv/pkg-config-workaround
Fix linking to older OpenSSL for Ruby < 2.7.7
2023-12-08 10:37:13 +01:00
Mislav Marohnić
89617471f8
Fix linking to older OpenSSL for Ruby < 2.7.7
Explicitly set PKG_CONFIG_PATH when `--with-openssl-dir` is used for older Rubies.
Otherwise, Ruby will attempt to link to the latest OpenSSL found by pkg-config,
which could be incompatible.
2023-12-07 15:52:10 +01:00
Mislav Marohnić
cba395e4a6
Merge pull request #2318 from rbenv/with-bundled-gems
Introduce "with_bundled_gems" build step for dev rubies and unify "standard"
2023-12-01 14:48:23 +01:00
Mislav Marohnić
c5346187ac
Simplify build & install steps for dev rubies
This merges "standard_build" and "standard_install" build steps into one again
and modifies "standard_install_with_bundled_gems" to just invoke "standard"
with the addition of `update-gems` & `extract-gems` targets.
2023-11-30 16:32:57 +01:00
Mislav Marohnić
d12f6e5488
Merge pull request #2316 from rbenv/fix-ruby-2.4
Fix compiling Ruby < 2.5 by omitting `--with-ext`
2023-11-24 22:14:21 +01:00
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ć
62ec07af2a
Merge pull request #2314 from rbenv/verify-openssl-remove
Remove deprecated verify_openssl step from build definitions
2023-11-21 19:35:21 +01:00
Mislav Marohnić
a029f72e2c
Remove deprecated verify_openssl step from build definitions 2023-11-21 19:26:52 +01:00
Mislav Marohnić
e30482e686
Merge pull request #2296 from rbenv/verify-openssl
Instruct Ruby to fail the build if openssl or psych are missing
2023-11-21 18:19:19 +01:00
Mislav Marohnić
4c46e63e4f
readme: update markdown syntax for warning label 2023-11-21 17:25:51 +01:00
Mislav Marohnić
4a3ff7e194
Surface make problems while building Ruby extensions
A very common type of build failure is that the Ruby "openssl" extension failed to compile. However, when that happens, ruby-build just prints a generic "BUILD FAILED" message. To find out what happened, the user would first have to open the ruby-build log, note the "Following extensions are not compiled" section, then figure out how to find the exact location to the "ext/openssl/mkmf.log" file for more information.

Now, when `make` fails, ruby-build will automatically forward the "Following extensions are not compiled" information to stderr.
2023-11-21 17:12:53 +01:00
Mislav Marohnić
4cb285791c
Remove verify_opensl step from build definitions
The functionality to fail the build if openssl or psych are missing is
now built into the `./configure && make` phase for Ruby.
2023-11-21 17:12:53 +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
Benoit Daloze
4b7ce4d00f Add ruby-dev definition
* Currently the same as 3.3.0-dev but that name changes every year,
  so this makes it easy to install ruby dev/master.
2023-11-21 10:24:07 +01:00
Mislav Marohnić
d312f5a403
Merge pull request #2308 from rbenv/update-eol-script
Add script to update `warn_unsuppported`, `warn_eol` labels
2023-11-19 15:07:14 +01:00
Mislav Marohnić
a6a79ac48d
Merge pull request #2307 from rbenv/ruby-3.0-unsupported
Mark Ruby 3.0.x as unsupported
2023-11-14 14:06:14 +01:00
Hiroshi SHIBATA
e4e49a1601
ruby-build 20231114 2023-11-14 21:13:25 +09:00
Hiroshi SHIBATA
6d5c4314ce
Merge pull request #2310 from andreimaxim/3.3.0-preview3
Added 3.3.0-preview3
2023-11-13 09:36:36 +09:00
Andrei Maxim
6e85a7bad4
Add 3.3.0-preview3 2023-11-12 22:36:04 +02:00
Mislav Marohnić
e03e8c3f9c
Add script to update warn_unsuppported, warn_eol labels
The script will automatically assign "warn_unsupported" or "warn_eol" labels
based on the information from endoflife.date.
2023-11-11 12:35:30 +01:00
Mislav Marohnić
ed3800a409
Mark Ruby 3.0.x as unsupported
It reaches EOL status in March 2024.
2023-11-11 12:33:27 +01:00
Mislav Marohnić
270ecd0bcb
Merge pull request #2304 from rbenv/fix-wget
Abandon using `--show-progress` for wget
2023-11-09 02:08:54 +01:00
Mislav Marohnić
4c07370ac4
Abandon using --show-progress for wget
It seems like there exist platforms that have wget which does not
support the `--show-progress` option. This reverts to using wget in its
default verbose mode where a progress bar and bunch more information are
printed to stderr.
2023-11-09 01:59:21 +01:00
Mislav Marohnić
a206686aac
Merge pull request #2302 from rbenv/man-page-tweaks
Add option flags to ruby-build man page
2023-11-09 00:08:32 +01:00
Mislav Marohnić
3f46003f03
Merge pull request #2303 from rbenv/print-command-tmpdir
Fix commands printed when TMPDIR is empty
2023-11-09 00:08:02 +01:00
Mislav Marohnić
c4f811a23d
Fix commands printed when TMPDIR is empty 2023-11-08 23:56:03 +01:00
Mislav Marohnić
a53f94fe3f
Add option flags to ruby-build man page 2023-11-08 23:48:51 +01:00
Mislav Marohnić
bb18f12e64
ruby-build 20231107 2023-11-07 19:16:07 +01:00
Mislav Marohnić
44e4797d23
Merge pull request #2297 from rbenv/man-page
Add ruby-build(1) man page
2023-11-07 19:03:06 +01:00
Mislav Marohnić
1aa0bfce12
Add ruby-build(1) man page 2023-11-07 18:20:59 +01:00
Mislav Marohnić
b80edb1889
💅 Tidy up ruby-build help output 2023-11-07 18:20:59 +01:00
Mislav Marohnić
91c95bbf8f
Respect NO_COLOR and CLICOLOR_FORCE (#2295)
http://bixense.com/clicolors/
2023-11-07 16:05:27 +01:00
Mislav Marohnić
8e2662fa65
Merge pull request #2230 from rbenv/output-redesign
Restructure console output
2023-11-07 15:49:55 +01:00
Mislav Marohnić
e320bdfbc7
Add helpful comments explaining ruby-build inner workings 2023-11-07 11:06:23 +01:00
Mislav Marohnić
ff4f335cb1
Simplify printing various error messages to stderr
There is no need to redirect to &3 to most cases anymore: &2 will suffice.

Also, it is better to print failure errors like checksum mismatches to
stderr instead of to the log file at &4.
2023-11-07 11:03:53 +01:00
Mislav Marohnić
5d1bebaccc
Improve verify_openssl output
- The command line invocation is now printed in the log.

- For every extension that failed, print the absolute location to its
  mkmf.log to encourage the user to look there when troubleshooting.

- Do not print "Configure options used" since ruby-build now prints the
  full `./configure` invocation as part of the build output.
2023-11-07 10:59:18 +01:00
Mislav Marohnić
1f72acb6d9
Connect git commands to the original stderr
Git commands that perform network fetching can now render progress on
the terminal. This also stops writing any git output to the log file.
2023-11-07 10:55:01 +01:00
Mislav Marohnić
56242478b1
Simplify build_package_rbx
This removes the `isolated_gem_dependency` hack as well as the `rake` &
`bundle` shell wrapper functions. The main reason is to avoid having to
use the `command` shell builtin to be able to invoke the real `rake` and
`bundle`. In my testing on bash 3.2, `command` does not respect the
usual bash error handling rules, and thus a failed `command` invocation
can trigger the ERR trap mechanism even when we don't want it to.
2023-11-07 10:51:43 +01:00
Mislav Marohnić
ae653983d8
💅 Cleanup build_package steps implementation
This stops writing raw pushd/popd output to the log file, which is noisy
and potentially confusing out-of-context. Instead, when changing the
directory in a way that is significant to the log, just print `cd`
followed by the name of the new directory.
2023-11-07 10:23:41 +01:00
Mislav Marohnić
93c50bbaf0
Show progress of downloaded files in the terminal
This connects the stderr of download utilities like curl and wget to the
original stderr of the process so that they can detect a terminal and
print progress bars to it.
2023-11-07 10:17:54 +01:00