jackorp / rpms / ruby

Forked from rpms/ruby 3 years ago
Clone

c7513cd Bundle OpenSSL into StdLib.

Authored and Committed by vondruch 3 years ago
1 file changed. 11 lines added. 40 lines removed.
    Bundle OpenSSL into StdLib.
    
    Symlinks to StdLib provided to preserve `--disable-gems` functionality
    together with `require_relative` cause double loading issues [1], e.g.:
    
    ~~~
    $ ruby --disable-gems -e 'require "openssl"; require "openssl/digest"'
    /usr/share/ruby/openssl/digest.rb:45: warning: already initialized constant OpenSSL::Digest::MD4
    /usr/share/gems/gems/openssl-2.2.0/lib/openssl/digest.rb:45: warning: previous definition of MD4 was here
    /usr/share/ruby/openssl/digest.rb:45: warning: already initialized constant OpenSSL::Digest::MD5
    /usr/share/gems/gems/openssl-2.2.0/lib/openssl/digest.rb:45: warning: previous definition of MD5 was here
    /usr/share/ruby/openssl/digest.rb:45: warning: already initialized constant OpenSSL::Digest::RIPEMD160
    /usr/share/gems/gems/openssl-2.2.0/lib/openssl/digest.rb:45: warning: previous definition of RIPEMD160 was here
    /usr/share/ruby/openssl/digest.rb:45: warning: already initialized constant OpenSSL::Digest::SHA1
    /usr/share/gems/gems/openssl-2.2.0/lib/openssl/digest.rb:45: warning: previous definition of SHA1 was here
    /usr/share/ruby/openssl/digest.rb:45: warning: already initialized constant OpenSSL::Digest::SHA224
    /usr/share/gems/gems/openssl-2.2.0/lib/openssl/digest.rb:45: warning: previous definition of SHA224 was here
    /usr/share/ruby/openssl/digest.rb:45: warning: already initialized constant OpenSSL::Digest::SHA256
    /usr/share/gems/gems/openssl-2.2.0/lib/openssl/digest.rb:45: warning: previous definition of SHA256 was here
    /usr/share/ruby/openssl/digest.rb:45: warning: already initialized constant OpenSSL::Digest::SHA384
    /usr/share/gems/gems/openssl-2.2.0/lib/openssl/digest.rb:45: warning: previous definition of SHA384 was here
    /usr/share/ruby/openssl/digest.rb:45: warning: already initialized constant OpenSSL::Digest::SHA512
    /usr/share/gems/gems/openssl-2.2.0/lib/openssl/digest.rb:45: warning: previous definition of SHA512 was here
    /usr/share/ruby/openssl/digest.rb:52:in `<class:Digest>': superclass mismatch for class Digest (TypeError)
    	from /usr/share/ruby/openssl/digest.rb:16:in `<module:OpenSSL>'
    	from /usr/share/ruby/openssl/digest.rb:15:in `<top (required)>'
    	from -e:1:in `require'
    	from -e:1:in `<main>'
    ~~~
    
    We could maintain a downstream patch reverting the `require_relative`,
    but given that how much troubles the extracted gems cause, it'll be
    better to keep them bundled. This will provide similar experience to
    upstream and prevent similar issues.
    
    [1]: https://bugs.ruby-lang.org/issues/16978#note-11
    
        
file modified
+11 -40