Trying to install Ruby 2.7.4 & Ruby 3 on Intel Mac 11.2.3 and I'm seeing the following error during compilation (installing using ruby-install (https://github.com/postmodern/ruby-install). I'm seeing the following error:
^
ossl_pkey_rsa.c:942:5: error: use of undeclared identifier 'RSA_SSLV23_PADDING'
DefRSAConst(SSLV23_PADDING);
^
ossl_pkey_rsa.c:877:58: note: expanded from macro 'DefRSAConst'
#define DefRSAConst(x) rb_define_const(cRSA, #x, INT2NUM(RSA_##x))
^
<scratch space>:144:1: note: expanded from here
RSA_SSLV23_PADDING
^
107 warnings and 1 error generated.
make[2]: *** [ossl_pkey_rsa.o] Error 1
make[1]: *** [ext/openssl/all] Error 2
make: *** [build-ext] Error 2
!!! Compiling ruby 2.7.4 failed!
Also, FYI:
❯ openssl version
LibreSSL 2.8.3
ruby-install takes care of installing the OpenSSL dependency for you, but there was a bug in ruby-install where it wasn't specifying the exact openssl version that needed to be installed. Thankfully that's been fixed:
ruby-install to >=0.8.3 (e.g., brew upgrade ruby-install) which pins the openssl dependency for ruby at 1.1ruby-install ruby 3.0.2)Details:
This was solved in ruby-install (first reported with https://github.com/postmodern/ruby-install/issues/409). Homebrew defaulted openssl to 3.0 (the latest major version) but Ruby hasn't yet added support for OpenSSL3.0. As such openssl dependency ruby-install was attempting to use was the wrong version (Ruby is still on 1.1).
Just for future reference, if someone is facing something similar with rvm just uninstall openssl@3 using brew and instead install openssl@1.1