mumble-voip / mumble

Mumble is an open-source, low-latency, high quality voice chat software.
https://www.mumble.info
Other
6.41k stars 1.12k forks source link

‘CRYPTO_mem_ctrl’ was not declared in this scope; did you mean ‘CRYPTO_memcmp’ #5968

Closed ppfeufer closed 1 year ago

ppfeufer commented 1 year ago

Description

Trying to compile mumble-server 1.4.0 on Ubuntu 22.04.1 and facing the following error

(auth) allianceserver@server:~/mumble/build$ cmake --build .
[  1%] Running cpp protocol buffer compiler on /home/allianceserver/mumble/src/Mumble.proto
[  3%] Automatic MOC for target shared
[  3%] Built target shared_autogen
[  5%] Building CXX object src/CMakeFiles/shared.dir/shared_autogen/mocs_compilation.cpp.o
[  6%] Building CXX object src/CMakeFiles/shared.dir/Mumble.pb.cc.o
[  8%] Building CXX object src/CMakeFiles/shared.dir/Ban.cpp.o
[ 10%] Building CXX object src/CMakeFiles/shared.dir/EnvUtils.cpp.o
[ 12%] Building CXX object src/CMakeFiles/shared.dir/FFDHE.cpp.o
[ 13%] Building CXX object src/CMakeFiles/shared.dir/HostAddress.cpp.o
[ 15%] Building CXX object src/CMakeFiles/shared.dir/HTMLFilter.cpp.o
[ 17%] Building CXX object src/CMakeFiles/shared.dir/License.cpp.o
[ 18%] Building CXX object src/CMakeFiles/shared.dir/LogEmitter.cpp.o
[ 20%] Building CXX object src/CMakeFiles/shared.dir/OSInfo.cpp.o
[ 22%] Building CXX object src/CMakeFiles/shared.dir/PasswordGenerator.cpp.o
[ 24%] Building CXX object src/CMakeFiles/shared.dir/PlatformCheck.cpp.o
[ 25%] Building CXX object src/CMakeFiles/shared.dir/QtUtils.cpp.o
[ 27%] Building CXX object src/CMakeFiles/shared.dir/ProcessResolver.cpp.o
[ 29%] Building CXX object src/CMakeFiles/shared.dir/ProtoUtils.cpp.o
[ 31%] Building CXX object src/CMakeFiles/shared.dir/SelfSignedCertificate.cpp.o
/home/allianceserver/mumble/src/SelfSignedCertificate.cpp: In static member function ‘static bool SelfSignedCertificate::generate(CertificateType, QString, QString, QSslCertificate&, QSslKey&)’:
/home/allianceserver/mumble/src/SelfSignedCertificate.cpp:45:29: error: ‘CRYPTO_MEM_CHECK_ON’ was not declared in this scope
45 |         if (CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON) == -1) {
|                             ^~~~~~~~~~~~~~~~~~~
/home/allianceserver/mumble/src/SelfSignedCertificate.cpp:45:13: error: ‘CRYPTO_mem_ctrl’ was not declared in this scope; did you mean ‘CRYPTO_memcmp’?
45 |         if (CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON) == -1) {
|             ^~~~~~~~~~~~~~~
|             CRYPTO_memcmp
/home/allianceserver/mumble/src/SelfSignedCertificate.cpp:62:22: warning: ‘RSA* RSA_new()’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
62 |         rsa = RSA_new();
|               ~~~~~~~^~
In file included from /usr/include/openssl/x509.h:36,
from /usr/include/openssl/x509v3.h:25,
from /home/allianceserver/mumble/src/SelfSignedCertificate.cpp:8:
/usr/include/openssl/rsa.h:201:28: note: declared here
201 | OSSL_DEPRECATEDIN_3_0 RSA *RSA_new(void);
|                            ^~~~~~~
/home/allianceserver/mumble/src/SelfSignedCertificate.cpp:78:32: warning: ‘int RSA_generate_key_ex(RSA*, int, BIGNUM*, BN_GENCB*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
78 |         if (RSA_generate_key_ex(rsa, 2048, e, nullptr) == 0) {
|             ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/openssl/x509.h:36,
from /usr/include/openssl/x509v3.h:25,
from /home/allianceserver/mumble/src/SelfSignedCertificate.cpp:8:
/usr/include/openssl/rsa.h:260:27: note: declared here
260 | OSSL_DEPRECATEDIN_3_0 int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e,
|                           ^~~~~~~~~~~~~~~~~~~
gmake[2]: *** [src/CMakeFiles/shared.dir/build.make:294: src/CMakeFiles/shared.dir/SelfSignedCertificate.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:117: src/CMakeFiles/shared.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2

Steps to reproduce

git clone https://github.com/mumble-voip/mumble.git

cd mumble git checkout v1.4.287 git submodule init git submodule update

mkdir build cd build/

cmake -Dclient=OFF .. cmake --build .

Mumble version

1.4.0

Mumble component

Server

OS

Linux

Reproducible?

Yes

Additional information

No response

Relevant log output

No response

Screenshots

No response

davidebeatrici commented 1 year ago

OpenSSL 3.x compatibility is currently only in the master branch (1.5.x).

ppfeufer commented 1 year ago

Ah, good to know, thank you!