Bug #16418

when configuring --with-os-version-string=none fails to strip entire version string on MacOS

Added by eightbitraptor (Matthew Valentine-House) 10 months ago. Updated 9 months ago.

Target version:
ruby -v:
ruby 2.7.0dev (2019-12-12T14:26:35Z master 93b27c69cc) [x86_64-darwin1]


When configuring Ruby with --with-os-version-string=none on Mac OS, the target_os is set to darwin1.

This is happening because the regex's generated by that form the os_version_style_transform in the configure script only handle a single major version digit. When this is run on Mac OS - where the target OS version is reported with a two digit major version (19.2.0 on my Macbook Pro running Mac OS Catalina 10.15.2) - everything except the first half of the major version is removed.

This affects the value of the global constant RUBY_PLATFORM

I believe the correct behaviour is to strip the entire version string rather than just part of it when the none option is passed.

Reproduction steps

On a Machine running Mac OS, with the latest master checked out, run:

autoconf && ./configure --with-os-version-style=none | grep -F 'target OS:'

this will output

* target OS:           darwin1  

Attached is a patch that fixes the regex to strip the entire version when none is passed as an argument. After the patch is applied, when running the above command again the output should be:

* target OS:           darwin  



Updated by nobu (Nobuyoshi Nakada) 10 months ago

  • Backport changed from 2.5: UNKNOWN, 2.6: UNKNOWN to 2.5: REQUIRED, 2.6: REQUIRED

Updated by mame (Yusuke Endoh) 9 months ago

  • Status changed from Open to Closed

The patch has been already merged. Closing, thanks.

Also available in: Atom PDF