BewareMyPower opened a new pull request, #145:
URL: https://github.com/apache/pulsar-client-python/pull/145

   ### Motivation
   
   Recently after the runner image was upgraded, the macOS build failed with 
`symbol not found in flat namespace (_EVP_PKEY_get_bn_param)`.
   
   See 
https://github.com/apache/pulsar-client-python/actions/runs/5805986979/job/15740588663?pr=134
   
   There are actually two issues.
   
   One is that when building the C++ client on macOS, `/usr/local/opt/openssl/` 
will be firstly searched if `OPENSSL_ROOT_DIR` is not defined.
   
   
https://github.com/apache/pulsar-client-cpp/blob/1e7d259bb94379ef6e4618fdac283912d0be6861/CMakeLists.txt#L136
   
   It should be fixed at the C++ client side but we can also have a workaround 
here by defining the `OPENSSL_ROOT_DIR` variable.
   
   The other is that when building the libcurl, the headers from 
`/usr/local/include/openssl/` were included, see the logs:
   
   ```
   /usr/local/include/openssl/macros.h:193:49: note: expanded from macro 
'OSSL_DEPRECATEDIN_3_0'
   #   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
   ```
   
   It's a strange error because we have already configured the `--with-ssl` 
option to specify the OpenSSL directory. I tried adding `-I/path/to/my/openssl` 
to the `CFLAGS` env variable but it didn't work.
   
   ### Modifications
   
   To resolve the 1st issue, specifying `OPENSSL_ROOT_DIR` to the `DEPS_PREFIX` 
path when building the C++ client.
   
   To resolve the 2nd issue, since I cannot find an elegant way to do that, I 
just copied the OpenSSL headers from the dependency header directory to the 
libcurl include directory.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to