www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - vibe.d ubuntu 22.04 ssl linking error

reply Gavin Gray <gav.gray gmail.com> writes:
After upgrading to ubuntu 22.04, I get the linker error below for 
a project that previously built successfully.

OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)

LDC - the LLVM D compiler (1.27.1):
   based on DMD v2.097.2 and LLVM 12.0.1
   built with LDC - the LLVM D compiler (1.27.1)
   Default target: x86_64-unknown-linux-gnu
   Host CPU: skylake
   http://dlang.org - http://wiki.dlang.org/LDC

vibe-d-0.9.5-beta.1

I tried unsuccessfully to also install an earlier version of 
OpenSSL

Any suggestions?

Compiling Diet HTML template test.dt...
Linking...
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:284:
error: undefined reference to 'SSL_get_peer_certificate'
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:625:
error: undefined reference to 'SSLv23_client_method'
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:626:
error: undefined reference to 'SSLv23_client_method'
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:630:
error: undefined reference to 'SSLv23_client_method'
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:631:
error: undefined reference to 'SSLv23_client_method'
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:638:
error: undefined reference to 'SSLv23_server_method'
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:639:
error: undefined reference to 'SSLv23_server_method'
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:641:
error: undefined reference to 'SSLv23_server_method'
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:642:
error: undefined reference to 'SSLv23_server_method'
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:906:
error: undefined reference to 'get_rfc3526_prime_2048'
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:1100:
error: undefined reference to 'SSL_load_error_strings'
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:1101:
error: undefined reference to 'SSL_library_init'
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:1103:
error: undefined reference to 'CRYPTO_num_locks'
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:1111:
error: undefined reference to 'CRYPTO_set_id_callback'
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:1112:
error: undefined reference to 'CRYPTO_set_locking_callback'
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:1117:
error: undefined reference to 'SSL_get_ex_new_index'
home/gavin/.dub/packages/openssl-1.1.6_1.0.1g/openssl/deimos/open
sl/safestack.d:140: error: undefined reference to 'sk_num'
home/gavin/.dub/packages/openssl-1.1.6_1.0.1g/openssl/deimos/open
sl/safestack.d:142: error: undefined reference to 'sk_value'
home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:1380:
error: undefined reference to 'ERR_put_error'
collect2: error: ld returned 1 exit status
Error: /usr/bin/cc failed with status: 1
/home/gavin/dlang/ldc-1.27.1/bin/ldc2 failed with exit code 1.
May 18 2022
parent Gavin Gray <gav.gray gmail.com> writes:
On Wednesday, 18 May 2022 at 20:41:53 UTC, Gavin Gray wrote:
 After upgrading to ubuntu 22.04, I get the linker error below 
 for a project that previously built successfully.

 OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)

 LDC - the LLVM D compiler (1.27.1):
   based on DMD v2.097.2 and LLVM 12.0.1
   built with LDC - the LLVM D compiler (1.27.1)
   Default target: x86_64-unknown-linux-gnu
   Host CPU: skylake
   http://dlang.org - http://wiki.dlang.org/LDC

 vibe-d-0.9.5-beta.1

 I tried unsuccessfully to also install an earlier version of 
 OpenSSL

 Any suggestions?

 Compiling Diet HTML template test.dt...
 Linking...
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:284:
error: undefined reference to 'SSL_get_peer_certificate'
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:625:
error: undefined reference to 'SSLv23_client_method'
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:626:
error: undefined reference to 'SSLv23_client_method'
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:630:
error: undefined reference to 'SSLv23_client_method'
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:631:
error: undefined reference to 'SSLv23_client_method'
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:638:
error: undefined reference to 'SSLv23_server_method'
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:639:
error: undefined reference to 'SSLv23_server_method'
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:641:
error: undefined reference to 'SSLv23_server_method'
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:642:
error: undefined reference to 'SSLv23_server_method'
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:906:
error: undefined reference to 'get_rfc3526_prime_2048'
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:1100:
error: undefined reference to 'SSL_load_error_strings'
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:1101:
error: undefined reference to 'SSL_library_init'
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:1103:
error: undefined reference to 'CRYPTO_num_locks'
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:1111:
error: undefined reference to 'CRYPTO_set_id_callback'
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:1112:
error: undefined reference to 'CRYPTO_set_locking_callback'
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:1117:
error: undefined reference to 'SSL_get_ex_new_index'
 home/gavin/.dub/packages/openssl-1.1.6_1.0.1g/openssl/deimos/open
sl/safestack.d:140: error: undefined reference to 'sk_num'
 home/gavin/.dub/packages/openssl-1.1.6_1.0.1g/openssl/deimos/open
sl/safestack.d:142: error: undefined reference to 'sk_value'
 home/gavin/.dub/packages/vibe-d-0.9.4/vibe-d/tls/vibe/stream/openssl.d:1380:
error: undefined reference to 'ERR_put_error'
 collect2: error: ld returned 1 exit status
 Error: /usr/bin/cc failed with status: 1
 /home/gavin/dlang/ldc-1.27.1/bin/ldc2 failed with exit code 1.
After posting I noticed the actual version of vibe was 0.9.4. Upgraded to vibe 0.9.5.beta.1 and now it linked successfully. Therefore no longer an issue!
May 18 2022