Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make Connext use Connext's openssl on all platforms #409

Merged
merged 2 commits into from
May 1, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 27 additions & 37 deletions test_security/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,6 @@ if(BUILD_TESTING)
RCL_ASSERT_RMW_ID_MATCHES=${rmw_implementation}
RMW_IMPLEMENTATION=${rmw_implementation}
ROS_SECURITY_KEYSTORE=${KEYSTORE_DIRECTORY_NATIVE_PATH}
# on bionic, Connext needs RTI's OpenSSL binaries to be on the PATH
# at runtime as the system version of OpenSSL is not supported
PATH="${TEST_PATH}"
)
if(TARGET ${target}${target_suffix})
Expand Down Expand Up @@ -159,8 +157,6 @@ if(BUILD_TESTING)
"${CMAKE_CURRENT_BINARY_DIR}/test_secure_publisher_subscriber${test_suffix}_$<CONFIG>.py"
TARGET test_secure_publisher_subscriber${test_suffix}
APPEND_LIBRARY_DIRS "${append_library_dirs}"
# on bionic, Connext needs RTI's OpenSSL binaries to be on the PATH
# at runtime as the system version of OpenSSL is not supported
ENV
PATH="${TEST_PATH}"
TIMEOUT 20
Expand Down Expand Up @@ -201,8 +197,6 @@ if(BUILD_TESTING)
"${CMAKE_CURRENT_BINARY_DIR}/test_secure_publisher_subscriber${test_suffix}_$<CONFIG>.py"
TARGET test_secure_publisher_subscriber${test_suffix}
APPEND_LIBRARY_DIRS "${append_library_dirs}"
# on bionic, Connext needs RTI's OpenSSL binaries to be on the PATH
# at runtime as the system version of OpenSSL is not supported
ENV
PATH="${TEST_PATH}"
TIMEOUT 20
Expand Down Expand Up @@ -243,8 +237,6 @@ if(BUILD_TESTING)
"${CMAKE_CURRENT_BINARY_DIR}/test_secure_publisher_subscriber${test_suffix}_$<CONFIG>.py"
TARGET test_secure_publisher_subscriber${test_suffix}
APPEND_LIBRARY_DIRS "${append_library_dirs}"
# on bionic, Connext needs RTI's OpenSSL binaries to be on the PATH
# at runtime as the system version of OpenSSL is not supported
nuclearsandwich marked this conversation as resolved.
Show resolved Hide resolved
ENV
PATH="${TEST_PATH}"
TIMEOUT 20
Expand All @@ -265,15 +257,11 @@ if(BUILD_TESTING)
file(TO_CMAKE_PATH "${ENV_PATH}" ENV_PATH)
set(TEST_PATH "${ENV_PATH}")
if(rmw_implementation STREQUAL "rmw_connext_cpp")
if(UNIX AND NOT APPLE)
# TODO(mikaelarguedas) remove this condition the day we want to use RTI's OpenSSL libraries
# on all platforms
# on bionic, Connext needs RTI's OpenSSL binaries to be on the PATH
# at runtime as the system version of OpenSSL is not supported
set(RTI_BIN_PATH "$ENV{RTI_OPENSSL_BIN}")
file(TO_CMAKE_PATH "${RTI_BIN_PATH}" RTI_BIN_PATH)
set(TEST_PATH "${RTI_BIN_PATH};${ENV_PATH}")
endif()
# Connext 5.3.1 needs RTI's OpenSSL binaries (based on EOL 1.0.2) to be
# on the PATH at runtime as the system version of OpenSSL is not supported
set(RTI_BIN_PATH "$ENV{RTI_OPENSSL_BIN}")
file(TO_CMAKE_PATH "${RTI_BIN_PATH}" RTI_BIN_PATH)
set(TEST_PATH "${RTI_BIN_PATH};${ENV_PATH}")
endif()

if(NOT WIN32)
Expand Down Expand Up @@ -306,26 +294,28 @@ if(BUILD_TESTING)
set(append_library_dirs "${CMAKE_CURRENT_BINARY_DIR}")
if(WIN32)
set(append_library_dirs "${append_library_dirs}/$<CONFIG>")
elseif(APPLE)
# connext need the openssl libraries to be on the DYLD_LIBRARY_PATH at runtime
# as SIP strips these variables on recent MacOS we populate them here
# see https://github.com/ros2/ros2/issues/409
execute_process(
COMMAND "brew" "--prefix" "openssl"
RESULT_VARIABLE _retcode
OUTPUT_VARIABLE _out_var
ERROR_VARIABLE _error_var
)
if(NOT _retcode EQUAL 0)
message(FATAL_ERROR "command 'brew --prefix openssl' failed with error code '${_retcode}' and error message '${_error_var}'")
endif()
string(STRIP "${_out_var}" _out_var)
set(openssl_lib_path "${_out_var}/lib")
file(TO_NATIVE_PATH "${openssl_lib_path}" openssl_lib_path)
set(append_library_dirs "${append_library_dirs};${openssl_lib_path}")
elseif(UNIX)
# on bionic, Connext needs RTI's OpenSSL libraries to be on the LD_LIBRARY_PATH
# at runtime as the system version of OpenSSL is not supported
string(REPLACE "\\" "\\\\" RTI_OPENSSL_LIBS "$ENV{RTI_OPENSSL_LIBS}")
set(append_library_dirs "${append_library_dirs};${RTI_OPENSSL_LIBS}")
# TODO(mikaelarguedas) uncomment this once Connext supports OpenSSL 1.1.1
# in the meantime use RTI_OPENSSL_LIBS
# elseif(APPLE)
# # connext need the openssl libraries to be on the DYLD_LIBRARY_PATH at runtime
# # as SIP strips these variables on recent MacOS we populate them here
# # see https://github.com/ros2/ros2/issues/409
# execute_process(
# COMMAND "brew" "--prefix" "openssl"
# RESULT_VARIABLE _retcode
# OUTPUT_VARIABLE _out_var
# ERROR_VARIABLE _error_var
# )
# if(NOT _retcode EQUAL 0)
# message(FATAL_ERROR "command 'brew --prefix openssl' failed with error code '${_retcode}' and error message '${_error_var}'")
# endif()
# string(STRIP "${_out_var}" _out_var)
# set(openssl_lib_path "${_out_var}/lib")
# file(TO_NATIVE_PATH "${openssl_lib_path}" openssl_lib_path)
# set(append_library_dirs "${append_library_dirs};${openssl_lib_path}")
nuclearsandwich marked this conversation as resolved.
Show resolved Hide resolved
else()
set(append_library_dirs "${append_library_dirs}:$ENV{RTI_OPENSSL_LIBS}")
endif()

Expand Down