Skip to content

Handle OpenSSL without dynamic ENGINE#13264

Open
bneradt wants to merge 1 commit into
apache:masterfrom
bneradt:support-no-openssl-engine
Open

Handle OpenSSL without dynamic ENGINE#13264
bneradt wants to merge 1 commit into
apache:masterfrom
bneradt:support-no-openssl-engine

Conversation

@bneradt

@bneradt bneradt commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Some OpenSSL builds expose the async APIs ATS can use while disabling the legacy ENGINE interface. On those platforms, such as RHEL 10, the test-only async_engine plugin fails to compile even though runtime TLS async support can still be built without it.

This adds a CMake compile check for dynamic ENGINE availability and uses it to gate the test plugin. The TLS engine AuTest now skips when the test plugin was not built, while ENGINE-capable builds continue to build and run the test.

Some OpenSSL builds expose the async APIs ATS can use while disabling the legacy ENGINE interface. On those platforms, such as RHEL 10, the test-only async_engine plugin fails to compile even though runtime TLS async support can still be built without it.

This adds a CMake compile check for dynamic ENGINE availability and uses it to gate the test plugin. The TLS engine AuTest now skips when the test plugin was not built, while ENGINE-capable builds continue to build and run the test.
@bneradt bneradt added this to the 11.0.0 milestone Jun 12, 2026
Copilot AI review requested due to automatic review settings June 12, 2026 21:45
@bneradt bneradt self-assigned this Jun 12, 2026
@bneradt bneradt added Build work related to build configuration or environment TLS Tests labels Jun 12, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves build/test portability for OpenSSL configurations that provide async TLS APIs but disable the legacy dynamic ENGINE interface (e.g., some distro builds). It prevents the test-only async_engine AuTest plugin from being built when dynamic ENGINE isn’t available, and updates the TLS engine gold test to skip cleanly in that scenario.

Changes:

  • Add a CMake compile probe (HAVE_OPENSSL_DYNAMIC_ENGINE) to detect OpenSSL dynamic ENGINE availability.
  • Gate building/linking the async_engine AuTest plugin on both TS_USE_TLS_ASYNC and HAVE_OPENSSL_DYNAMIC_ENGINE.
  • Update the tls_engine gold test to skip unless the async_engine.so test plugin exists, and reuse the computed plugin path for the copy step.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
CMakeLists.txt Adds a compile-time probe for OpenSSL dynamic ENGINE support (HAVE_OPENSSL_DYNAMIC_ENGINE).
tests/tools/plugins/CMakeLists.txt Builds the async_engine AuTest plugin only when async TLS is enabled and dynamic ENGINE is available.
tests/gold_tests/tls/tls_engine.test.py Skips the test when async_engine.so wasn’t built and avoids repeating the plugin path.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Build work related to build configuration or environment Tests TLS

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants