[ruby-core:98244] [Ruby master Bug#16845] Building Ruby with system Ruby 1.8.7 results in make failing due to syntax error in ./tool/lib/vcs.rb
From:
erik@...
Date:
2020-05-10 00:33:36 UTC
List:
ruby-core #98244
Issue #16845 has been updated by ErikSwan (Erik Swan).
Description updated
Subject changed from Building Ruby with system Ruby 1.8.7 results in make failing due to syntax error in ./tool/file2lastrev.rb to Building Ruby with system Ruby 1.8.7 results in make failing due to syntax error in ./tool/lib/vcs.rb
I have updated the title and description to correct where the syntax error is located. It is located in `./tool/lib/vcs.rb`, which is ** *called* ** by `./tool/file2lastrev.rb`.
From looking at the related issue that Shibata-san linked, it looks like an easy workaround for this is to run `./configure` with `--with-baseruby=no`, since having a `BASERUBY` seems like it isn't required in most cases when building from the tarball.
----------------------------------------
Bug #16845: Building Ruby with system Ruby 1.8.7 results in make failing due to syntax error in ./tool/lib/vcs.rb
https://bugs.ruby-lang.org/issues/16845#change-85485
* Author: ErikSwan (Erik Swan)
* Status: Open
* Priority: Normal
* ruby -v: 2.7.1
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Hello,
I am trying to build Ruby 2.7.1 from source on a RHEL 6.9 system, which has ruby 1.8.7 as the existing system Ruby. When I run `make`, I get an error about a syntax error in `./tool/lib/vcs.rb`, which is called by `./tool/file2lastrev.rb`. I am guessing this is because `vcs.rb` uses Ruby syntax that was introduced in a newer Ruby version, and is not valid in 1.8.7, resulting in a runtime error.
Here is a snippet of the error:
```
./tool/file2lastrev.rb:10:in `require': /tmp/eswan/ruby-2.7.1/tool/lib/vcs.rb:471: syntax error, unexpected ',', expecting ']' (SyntaxError)
last = cmd_read_at(srcdir, [[*gitcmd, 'rev-parse', ref]]).rstrip
^
/tmp/eswan/ruby-2.7.1/tool/lib/vcs.rb:471: syntax error, unexpected ',', expecting kEND
```
# Steps to reproduce:
1. Obtain a RHEL 6.8 or 6.9 system (this is also reproducible on 6.8, and might be reproducible on all 6.x)
2. Confirm `/usr/bin/ruby --version` reports Ruby 1.8.7.
3. Download and extract the Ruby 2.7.1 source archive.
4. Run `./configure`
5. Run `./make`
# Expected behavior:
`make` should run correctly without any errors.
# Actual behavior:
The Makefile errors out when trying to run `./tool/file2lastrev.rb` with the existing system Ruby.
A shell log showing steps to reproduce and the output of `configure` and `make` is attached.
---Files--------------------------------
ruby_build_error.log (573 KB)
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>