[#70843] Re: [ruby-cvs:58952] hsbt:r51801 (trunk): * lib/rubygems: Update to RubyGems HEAD(fe61e4c112). — Eric Wong <normalperson@...>
hsbt@ruby-lang.org wrote:
3 messages
2015/09/17
[ruby-core:70785] [Ruby trunk - Bug #9714] Ruby configured to call OpenSSL engine API when it shouldn't
From:
zzak@...
Date:
2015-09-13 03:27:16 UTC
List:
ruby-core #70785
Issue #9714 has been updated by Zachary Scott. Assignee set to openssl ---------------------------------------- Bug #9714: Ruby configured to call OpenSSL engine API when it shouldn't https://bugs.ruby-lang.org/issues/9714#change-54168 * Author: Barry Allard * Status: Open * Priority: Normal * Assignee: openssl * ruby -v: ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- ### (This issue is NOT related to the Heartbleed vulnerability.) There is an issue compiling under OSX where system dependencies and homebre= w dependencies get mixed together, resulting in an incorrectly configured R= uby which fails at runtime. The attached patch to `ext/openssl/ossl.h` checks the actual configuration = from `openssl/ssl.h`: `#if defined(HAVE_OPENSSL_ENGINE_H) && defined(HAVE_ST_ENGINE) && !defined(= OPENSSL_NO_ENGINE)` instead of just `#if defined(HAVE_OPENSSL_ENGINE_H) && defined(HAVE_ST_ENGINE)`=20=20 ## Patches (Patches also available at https://gist.github.com/10092587) ### Testing I've tested it on several ruby 1.9.x - 2.1.1 rebuilt from source, and it se= ems to Do The Right Thing (tm). All Rubies fail in a similar manner, which was expected. ## Environment ### Ruby 2.1.1 configure options: `--with-openssl-dir=3D/usr/local/opt/openssl --disable-install-doc --enable= -shared` ### OpenSSL 1.0.1g Configure options: `zlib-dynamic shared enable-cms no-hw no-rdrand no-sctp no-md4 no-mdc2 no-r= c4 no-fips no-engine` ### Symptoms ~~~ 0 ~ =E2=9D=AF=E2=9D=AF=E2=9D=AF gem list a -r *** REMOTE GEMS *** /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kerne= l_require.rb:55:in `require': dlopen(/usr/local/ruby/ruby-2.1.1/lib/ruby/2.= 1.0/x86_64-darwin13.0/openssl.bundle, 9): Symbol not found: _ENGINE_free (L= oadError) Referenced from: /usr/local/ruby/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin1= 3.0/openssl.bundle Expected in: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib in /usr/local/ruby/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bun= dle - /usr/local/ruby/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.b= undle from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/core_ext= /kernel_require.rb:55:in `require' from /usr/local/ruby/ruby-2.1.1/lib/ruby/2.1.0/openssl.rb:17:in `<top (req= uired)>' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/core_ext= /kernel_require.rb:55:in `require' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/core_ext= /kernel_require.rb:55:in `require' from /usr/local/ruby/ruby-2.1.1/lib/ruby/2.1.0/net/https.rb:22:in `<top (r= equired)>' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/core_ext= /kernel_require.rb:55:in `require' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/core_ext= /kernel_require.rb:55:in `require' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/request.= rb:39:in `configure_connection_for_https' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/request.= rb:93:in `connection_for' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/request.= rb:122:in `fetch' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/remote_f= etcher.rb:337:in `request' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/remote_f= etcher.rb:231:in `fetch_http' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/remote_f= etcher.rb:266:in `fetch_path' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/remote_f= etcher.rb:296:in `cache_update_path' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/source.r= b:177:in `load_specs' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/spec_fet= cher.rb:266:in `tuples_for' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/spec_fet= cher.rb:226:in `block in available_specs' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/source_l= ist.rb:97:in `each' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/source_l= ist.rb:97:in `each_source' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/spec_fet= cher.rb:222:in `available_specs' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/spec_fet= cher.rb:147:in `detect' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/commands= /query_command.rb:167:in `show_gems' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/commands= /query_command.rb:109:in `block in execute' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/commands= /query_command.rb:109:in `each' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/commands= /query_command.rb:109:in `execute' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/command.= rb:305:in `invoke_with_build_args' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/command_= manager.rb:167:in `process_args' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/command_= manager.rb:137:in `run' from /usr/local/ruby/ruby-2.1.1/lib/ruby/site_ruby/2.1.0/rubygems/gem_runn= er.rb:54:in `run' from /usr/local/ruby/ruby-2.1.1/bin/gem:21:in `<main>' 1 ~ =E2=9D=AF=E2=9D=AF=E2=9D=AF ~~~ ---Files-------------------------------- fix_ruby_openssl_no_engine.2.x.diff (442 Bytes) fix_ruby_openssl_no_engine.1.9.x.diff (442 Bytes) --=20 https://bugs.ruby-lang.org/