Issue #12182 has been reported by Kazuki Yamaguchi.

----------------------------------------
Bug #12182: openssl: NPN may be disabled by OpenSSL configuration
https://bugs.ruby-lang.org/issues/12182

* Author: Kazuki Yamaguchi
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
OpenSSL's NPN support can be disabled, and Ruby doesn't work well when it is disabled.

~~~
% make test-all TESTS="test/openssl"
...
# Running tests:

[274/358] OpenSSL::TestSSL#test_npn_advertised_protocol_too_long./test/runner.rb: OpenSSL::TestSSL#test_npn_advertised_protocol_too_long: symbol lookup error: /work/ruby-src/.ext/x86_64-linux/openssl.so: undefined symbol: SSL_CTX_set_next_proto_select_cb
uncommon.mk:607: recipe for target 'yes-test-all' failed
make: *** [yes-test-all] Error 127
~~~

We should detect that the OpenSSL has NPN support by checking existence of `SSL_CTX_set_next_proto_select_cb`, not of `OPENSSL_NPN_NEGOTIATED`.
This is because `OPENSSL_NPN_NEGOTIATED` macro always exists even if NPN is disabled.

I attached a patch which fixes this.

---Files--------------------------------
0001-openssl-fix-build-when-NPN-is-disabled-by-OpenSSL.patch (5.43 KB)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>