Compilation failure for databases/mysql80_client when using DEFAULT_VERSIONS+= ssl=openssl31 on 13.2_RELEASE_p4

I had been just using the base's default OpenSSL (1.1.1 or something like that), but I decided to try out 3.1 from ports instead. Most things that needed to be rebuilt have been rebuilt successfully (with the status of a small number of others still up in the air because Rust always takes me several hours to build :confused:), but databases/mysql80_client fails:

Code:
Building CXX object utilities/CMakeFiles/comp_client_err.dir/comp_client_err.cc.o
--- utilities/CMakeFiles/comp_err.dir/all ---
ld: error: undefined symbol: EVP_CIPHER_iv_length
>>> referenced by my_aes_openssl.cc
>>>               my_aes_openssl.cc.o:(my_aes_encrypt(unsigned char const*, unsigned int, unsigned char*, unsigned char const*, unsigned int, my_aes_opmode, unsigned char const*, bool, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)) in archive ../archive_output_directory/libmysys.a
>>> referenced by my_aes_openssl.cc
--- utilities/CMakeFiles/comp_client_err.dir/all ---
cd /construction/xports/databases/mysql80-client/work/.build/utilities && /usr/local/libexec/ccache/c++ -DBOOST_NO_CXX98_FUNCTION_BASE -DHAVE_CONFIG_H -DLZ4_DISABLE_DEPRECATE_WARNINGS -DMUTEX_EVENT -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/construction/xports/databases/mysql80-client/work/.build -I/construction/xports/databases/mysql80-client/work/.build/include -I/construction/xports/databases/mysql80-client/work/mysql-8.0.33 -I/construction/xports/databases/mysql80-client/work/mysql-8.0.33/include -isystem /usr/local/include/editline -isystem /construction/xports/databases/mysql80-client/work/mysql-8.0.33/extra/zlib/zlib-1.2.13 -isystem /construction/xports/databases/mysql80-client/work/.build/extra/zlib/zlib-1.2.13 -isystem /construction/xports/databases/mysql80-client/work/mysql-8.0.33/extra/zstd/zstd-1.5.0/lib -std=c++17 -fno-omit-frame-pointer -ftls-model=initial-exec -O2 -pipe  -fPIC -DLDAP_DEPRECATED -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing   --- utilities/CMakeFiles/my_print_defaults.dir/all ---
--- utilities/CMakeFiles/my_print_defaults.dir/my_print_defaults.cc.o ---
--- utilities/CMakeFiles/comp_err.dir/all ---
>>>               my_aes_openssl.cc.o:(my_aes_decrypt(unsigned char const*, unsigned int, unsigned char*, unsigned char const*, unsigned int, my_aes_opmode, unsigned char const*, bool, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)) in archive ../archive_output_directory/libmysys.a
>>> referenced by my_aes_openssl.cc
>>>               my_aes_openssl.cc.o:(my_aes_needs_iv(my_aes_opmode)) in archive ../archive_output_directory/libmysys.a

ld: error: undefined symbol: EVP_CIPHER_block_size
>>> referenced by my_aes_openssl.cc
>>>               my_aes_openssl.cc.o:(my_aes_get_size(unsigned int, my_aes_opmode)) in archive ../archive_output_directory/libmysys.a
--- utilities/CMakeFiles/comp_client_err.dir/all ---
-malign-double -isystem /usr/local/include -std=c++17 -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual -Wcast-qual -Wno-null-conversion -Wno-unused-private-field -Wconditional-uninitialized -Wdeprecated -Wextra-semi -Wheader-hygiene -Wnon-virtual-dtor -Wundefined-reinterpret-cast -Wrange-loop-analysis -Winconsistent-missing-destructor-override -Winconsistent-missing-override -Wshadow-field -ffunction-sections -fdata-sections -O2 -pipe  -fPIC -DLDAP_DEPRECATED -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing   -malign-double -isystem /usr/local/include -std=c++17  -DNDEBUG -fPIE -Wshadow-uncaptured-local -MD -MT utilities/CMakeFiles/comp_client_err.dir/comp_client_err.cc.o -MF CMakeFiles/comp_client_err.dir/comp_client_err.cc.o.d -o CMakeFiles/comp_client_err.dir/comp_client_err.cc.o -c /construction/xports/databases/mysql80-client/work/mysql-8.0.33/utilities/comp_client_err.cc
--- utilities/CMakeFiles/my_print_defaults.dir/all ---
[ 51%] Building CXX object utilities/CMakeFiles/my_print_defaults.dir/my_print_defaults.cc.o
cd /construction/xports/databases/mysql80-client/work/.build/utilities && /usr/local/libexec/ccache/c++ -DBOOST_NO_CXX98_FUNCTION_BASE -DHAVE_CONFIG_H -DLZ4_DISABLE_DEPRECATE_WARNINGS -DMUTEX_EVENT -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/construction/xports/databases/mysql80-client/work/.build -I/construction/xports/databases/mysql80-client/work/.build/include -I/construction/xports/databases/mysql80-client/work/mysql-8.0.33 -I/construction/xports/databases/mysql80-client/work/mysql-8.0.33/include -isystem /usr/local/include/editline -isystem /construction/xports/databases/mysql80-client/work/mysql-8.0.33/extra/zlib/zlib-1.2.13 -isystem /construction/xports/databases/mysql80-client/work/.build/extra/zlib/zlib-1.2.13 -isystem /construction/xports/databases/mysql80-client/work/mysql-8.0.33/extra/zstd/zstd-1.5.0/lib -std=c++17 -fno-omit-frame-pointer -ftls-model=initial-exec -O2 -pipe  -fPIC -DLDAP_DEPRECATED -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing   -malign-double -isystem /usr/local/include -std=c++17 -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual -Wcast-qual -Wno-null-conversion -Wno-unused-private-field -Wconditional-uninitialized -Wdeprecated -Wextra-semi -Wheader-hygiene -Wnon-virtual-dtor -Wundefined-reinterpret-cast -Wrange-loop-analysis -Winconsistent-missing-destructor-override -Winconsistent-missing-override -Wshadow-field -ffunction-sections -fdata-sections -O2 -pipe  -fPIC -DLDAP_DEPRECATED -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing   -malign-double -isystem /usr/local/include -std=c++17  -DNDEBUG -fPIE -Wshadow-uncaptured-local -MD -MT utilities/CMakeFiles/my_print_defaults.dir/my_print_defaults.cc.o -MF CMakeFiles/my_print_defaults.dir/my_print_defaults.cc.o.d -o CMakeFiles/my_print_defaults.dir/my_print_defaults.cc.o -c /construction/xports/databases/mysql80-client/work/mysql-8.0.33/utilities/my_print_defaults.cc
--- utilities/CMakeFiles/comp_err.dir/all ---
c++: error: linker command failed with exit code 1 (use -v to see invocation)
--- utilities/CMakeFiles/zlib_decompress.dir/all ---
--- utilities/CMakeFiles/zlib_decompress.dir/depend ---
cd /construction/xports/databases/mysql80-client/work/.build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /construction/xports/databases/mysql80-client/work/mysql-8.0.33 /construction/xports/databases/mysql80-client/work/mysql-8.0.33/utilities /construction/xports/databases/mysql80-client/work/.build /construction/xports/databases/mysql80-client/work/.build/utilities /construction/xports/databases/mysql80-client/work/.build/utilities/CMakeFiles/zlib_decompress.dir/DependInfo.cmake
--- utilities/CMakeFiles/comp_client_err.dir/all ---
--- utilities/CMakeFiles/comp_client_err.dir/__/libmysql/errmsg.cc.o ---
--- utilities/CMakeFiles/comp_err.dir/all ---
*** [runtime_output_directory/comp_err] Error code 1

make[3]: stopped in /construction/xports/databases/mysql80-client/work/.build
1 error

make[3]: stopped in /construction/xports/databases/mysql80-client/work/.build
*** [utilities/CMakeFiles/comp_err.dir/all] Error code 2

make[2]: stopped in /construction/xports/databases/mysql80-client/work/.build
--- utilities/CMakeFiles/zlib_decompress.dir/all ---
*** [utilities/CMakeFiles/zlib_decompress.dir/all] Error code 6

make[2]: stopped in /construction/xports/databases/mysql80-client/work/.build
--- utilities/CMakeFiles/comp_client_err.dir/all ---
[ 51%] Building CXX object utilities/CMakeFiles/comp_client_err.dir/__/libmysql/errmsg.cc.o
cd /construction/xports/databases/mysql80-client/work/.build/utilities && /usr/local/libexec/ccache/c++ -DBOOST_NO_CXX98_FUNCTION_BASE -DHAVE_CONFIG_H -DLZ4_DISABLE_DEPRECATE_WARNINGS -DMUTEX_EVENT -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/construction/xports/databases/mysql80-client/work/.build -I/construction/xports/databases/mysql80-client/work/.build/include -I/construction/xports/databases/mysql80-client/work/mysql-8.0.33 -I/construction/xports/databases/mysql80-client/work/mysql-8.0.33/include -isystem /usr/local/include/editline -isystem /construction/xports/databases/mysql80-client/work/mysql-8.0.33/extra/zlib/zlib-1.2.13 -isystem /construction/xports/databases/mysql80-client/work/.build/extra/zlib/zlib-1.2.13 -isystem /construction/xports/databases/mysql80-client/work/mysql-8.0.33/extra/zstd/zstd-1.5.0/lib -std=c++17 -fno-omit-frame-pointer -ftls-model=initial-exec -O2 -pipe  -fPIC -DLDAP_DEPRECATED -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing   -malign-double -isystem /usr/local/include -std=c++17 -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual -Wcast-qual -Wno-null-conversion -Wno-unused-private-field -Wconditional-uninitialized -Wdeprecated -Wextra-semi -Wheader-hygiene -Wnon-virtual-dtor -Wundefined-reinterpret-cast -Wrange-loop-analysis -Winconsistent-missing-destructor-override -Winconsistent-missing-override -Wshadow-field -ffunction-sections -fdata-sections -O2 -pipe  -fPIC -DLDAP_DEPRECATED -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing   -malign-double -isystem /usr/local/include -std=c++17  -DNDEBUG -fPIE -Wshadow-uncaptured-local -MD -MT utilities/CMakeFiles/comp_client_err.dir/__/libmysql/errmsg.cc.o -MF CMakeFiles/comp_client_err.dir/__/libmysql/errmsg.cc.o.d -o CMakeFiles/comp_client_err.dir/__/libmysql/errmsg.cc.o -c /construction/xports/databases/mysql80-client/work/mysql-8.0.33/libmysql/errmsg.cc
--- utilities/CMakeFiles/my_print_defaults.dir/all ---
--- runtime_output_directory/my_print_defaults ---
[ 51%] Linking CXX executable ../runtime_output_directory/my_print_defaults
--- utilities/CMakeFiles/comp_client_err.dir/all ---
*** [utilities/CMakeFiles/comp_client_err.dir/all] Error code 6

make[2]: stopped in /construction/xports/databases/mysql80-client/work/.build
--- utilities/CMakeFiles/my_print_defaults.dir/all ---
cd /construction/xports/databases/mysql80-client/work/.build/utilities && /usr/local/bin/cmake -E cmake_link_script CMakeFiles/my_print_defaults.dir/link.txt --verbose=1
/usr/local/libexec/ccache/c++ -std=c++17 -fno-omit-frame-pointer -ftls-model=initial-exec -O2 -pipe  -fPIC -DLDAP_DEPRECATED -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing   -malign-double -isystem /usr/local/include -std=c++17 -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual -Wcast-qual -Wno-null-conversion -Wno-unused-private-field -Wconditional-uninitialized -Wdeprecated -Wextra-semi -Wheader-hygiene -Wnon-virtual-dtor -Wundefined-reinterpret-cast -Wrange-loop-analysis -Winconsistent-missing-destructor-override -Winconsistent-missing-override -Wshadow-field -ffunction-sections -fdata-sections -O2 -pipe  -fPIC -DLDAP_DEPRECATED -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing   -malign-double -isystem /usr/local/include -std=c++17  -DNDEBUG  -Wl,-rpath,/usr/local/lib -fstack-protector-strong CMakeFiles/my_print_defaults.dir/my_print_defaults.cc.o -o ../runtime_output_directory/my_print_defaults  -Wl,-rpath,/usr/local/lib: -lpthread ../archive_output_directory/libmysys.a ../archive_output_directory/libstrings.a ../archive_output_directory/libmysys.a ../archive_output_directory/libstrings.a ../archive_output_directory/libmytime.a ../archive_output_directory/libzlib.a ../archive_output_directory/libzstd.a -lm -lrt -lexecinfo -L/usr/local/lib -lunwind /usr/local/lib/libssl.so /usr/local/lib/libcrypto.so -lpthread 
ld: error: undefined symbol: EVP_CIPHER_iv_length
>>> referenced by my_aes_openssl.cc
>>>               my_aes_openssl.cc.o:(my_aes_encrypt(unsigned char const*, unsigned int, unsigned char*, unsigned char const*, unsigned int, my_aes_opmode, unsigned char const*, bool, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)) in archive ../archive_output_directory/libmysys.a
>>> referenced by my_aes_openssl.cc
>>>               my_aes_openssl.cc.o:(my_aes_decrypt(unsigned char const*, unsigned int, unsigned char*, unsigned char const*, unsigned int, my_aes_opmode, unsigned char const*, bool, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)) in archive ../archive_output_directory/libmysys.a
>>> referenced by my_aes_openssl.cc
>>>               my_aes_openssl.cc.o:(my_aes_needs_iv(my_aes_opmode)) in archive ../archive_output_directory/libmysys.a

ld: error: undefined symbol: EVP_CIPHER_block_size
>>> referenced by my_aes_openssl.cc
>>>               my_aes_openssl.cc.o:(my_aes_get_size(unsigned int, my_aes_opmode)) in archive ../archive_output_directory/libmysys.a
c++: error: linker command failed with exit code 1 (use -v to see invocation)
*** [runtime_output_directory/my_print_defaults] Error code 1

make[3]: stopped in /construction/xports/databases/mysql80-client/work/.build
1 error

make[3]: stopped in /construction/xports/databases/mysql80-client/work/.build
*** [utilities/CMakeFiles/my_print_defaults.dir/all] Error code 2

make[2]: stopped in /construction/xports/databases/mysql80-client/work/.build
4 errors

make[2]: stopped in /construction/xports/databases/mysql80-client/work/.build
*** [all] Error code 2

make[1]: stopped in /construction/xports/databases/mysql80-client/work/.build
1 error

make[1]: stopped in /construction/xports/databases/mysql80-client/work/.build
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make: stopped in /xports/databases/mysql80-client
 
OP
rwv37
Just a couple little followups:

Everything (like about 170 ports) wound up building just fine, except mysql80_client (and mysql80_server, which was skipped since it depends on mysql80_client).

After it was all done, I tried building mysql80_client (and only mysql80_client) again, but got the same problem.
 
try to edit port Makefile and change WITH_SSL=system with WITH_SSL=/usr/local
see if it works
i tried and it started the build but then failed because i dont have libfido2 build with openssl31
 
OP
rwv37
try to edit port Makefile and change WITH_SSL=system with WITH_SSL=/usr/local
see if it works
i tried and it started the build but then failed because i dont have libfido2 build with openssl31

Thanks. I tried it out, but got the same error. One strange-seeming thing that I noticed from the build log:
-- Found WITH_SSL=system on command line

That's the only mention of WITH_SSL in there. Maybe I'm not specifying it correctly in the makefile, or something? Here's /usr/ports/databases/Makefile:
Code:
  CLIENT_ONLY=    yes

  OPTIONS_GROUP+= PLUGINS
  PLUGINS_DESC=   Default Client Plugins
  OPTIONS_GROUP_PLUGINS=  SASLCLIENT
  SASLCLIENT_DESC=        SASL client plugin module
  SASLCLIENT_CMAKE_BOOL=  WITH_AUTHENTICATION_LDAP
  SASLCLIENT_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2
  SASLCLIENT_USES=                ldap

  OPTIONS_DEFAULT+=       SASLCLIENT
  OPTIONS_SUB=    yes

  # asdf bob: setting WITH_SSL to use ports version... see:
  # https://forums.freebsd.org/threads/compilation-failure-for-databases-mysql80_client-when-using-default_versions-ssl-  openssl31-on-13-2_release_p4.91033/#post-629197
  WITH_SSL= /usr/local

  # issue 166367: adding symlinks for back-compatibility with ${lib}_r
  post-install:
  #       @${RM} ${STAGEDIR}${PREFIX}/lib/mysql/private/libprotobuf-lite.so.3.19.4
  #       @${RM} ${STAGEDIR}${PREFIX}/lib/mysql/private/libprotobuf.so.3.19.4
          @${RM} -r ${STAGEDIR}${PREFIX}/lib/mysql/private
          @${LN} -s libmysqlclient.a ${STAGEDIR}${PREFIX}/lib/mysql/libmysqlclient_r.a
          @${LN} -s libmysqlclient.so ${STAGEDIR}${PREFIX}/lib/mysql/libmysqlclient_r.so
          @${LN} -s libmysqlclient.so.21 ${STAGEDIR}${PREFIX}/lib/mysql/libmysqlclient_r.so.21

  .include "${MASTERDIR}/Makefile"

Only difference from the original makefile is the four lines (including one blank) starting with the "#asdf bob" line.
 
OP
rwv37
I'm sorry, I'm not understanding. There was no "WITH_SSL" in the makefile (until I added one at your suggestion). There is no "lower" in the makefile; what I posted was the entire thing.

Are you maybe talking about the .include "${MASTERDIR}/Makefile" line? I assume changing it in there would affect a whole lot more than just this one port.
 
Top