Search code examples
rubyrubygemsbundlereventmachine

MacOS Ventura13.3 with Bundle Install eventmachine stuck in failing loop


There have been multiple accounts similar to this, but something different is going on here. I wrote about this question here.

Here is background information:

$  which ruby                                                                                                
/Users/johnlarkin/.rvm/rubies/ruby-3.1.3/bin/ruby
$  ruby -v
ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [arm64-darwin22]
$  which openssl
/opt/homebrew/opt/openssl@3/bin/openssl
$  openssl version                                                                                           
OpenSSL 3.1.0 14 Mar 2023 (Library: OpenSSL 3.1.0 14 Mar 2023)

I can install eventmachine like this:

$  gem install eventmachine -v '1.2.7' -- --with-ssl-dir=/opt/homebrew/opt/openssl@3
Building native extensions with: '--with-ssl-dir=/opt/homebrew/opt/openssl@3'
This could take a while...
Successfully installed eventmachine-1.2.7
Parsing documentation for eventmachine-1.2.7
Done installing documentation for eventmachine after 0 seconds
1 gem installed

However, when I go to bundle install, it still doesn't work:

                                                   ^
4 warnings generated.
linking shared-object rubyeventmachine.bundle
Undefined symbols for architecture arm64:
  "_SSL_get1_peer_certificate", referenced from:
      SslBox_t::GetPeerCert() in ssl.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [rubyeventmachine.bundle] Error 1

make failed, exit code 2

Gem files will remain installed in
/Users/johnlarkin/Desktop/Coding_Learning/github_files/johnlarkin1.github.io/vendor/bundle/ruby/3.1.0/gems/eventmachine-1.2.7
for inspection.
Results logged to
/Users/johnlarkin/Desktop/Coding_Learning/github_files/johnlarkin1.github.io/vendor/bundle/ruby/3.1.0/extensions/arm64-darwin-22/3.1.0/eventmachine-1.2.7/gem_make.out

An error occurred while installing eventmachine (1.2.7), and Bundler cannot continue.
Make sure that `gem install eventmachine -v '1.2.7' --source 'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
  jekyll-sleek was resolved to 0.1.9, which depends on
    jekyll-seo-tag was resolved to 2.8.0, which depends on
      jekyll was resolved to 3.9.2, which depends on
        em-websocket was resolved to 0.5.3, which depends on
          eventmachine

Does anyone have any ideas?


Solution

  • Huge thank you to @tadman for the helpful suggestion. The issue was with the bundle config settings (link)

    It seems like due to an earlier incorrect command specification, something about the build process had become cached.

    I ran:

    $  bundle config build.eventmachine --with-ssl-dir=/opt/homebrew/opt/openssl@3 
    
    You are replacing the current global value of build.eventmachine,
    which is currently "--with-cppflags=-I/opt/homebrew/opt/openssl@3/include"
    

    After doing this, bundle install proceeded to work totally normally. Thank you again @tadman!