From: erik@... Date: 2020-05-10T00:33:36+00:00 Subject: [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 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: