ryzom / ryzomcore

Ryzom Core is the open-source project related to the Ryzom game. This community repository is synchronized with the Ryzom Forge repository, based on the Core branch.
https://wiki.ryzom.dev
GNU Affero General Public License v3.0
337 stars 90 forks source link

Installation fails with OpenSSL / Network error #636

Closed vn971 closed 1 year ago

vn971 commented 3 years ago

Steps to reproduce:

And then it errors out printing this in console:

Qt: Session management error: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed
INF f67ed340 utils.cpp 613 CLogHelper ryzom_installer : RYZOM INSTALLER VERSION: 3.5.0.9692 (RELEASE)
INF f67ed340 utils.cpp 614 CLogHelper ryzom_installer : Memory: 9 GiB/15 GiB
INF f67ed340 utils.cpp 615 CLogHelper ryzom_installer : OS: Linux version 5.12.12-hardened1-1-hardened (linux-hardened@archlinux) (gcc (GCC) 11.1.0, GNU ld (GNU Binutils) 2.36.1) #1 SMP PREEMPT Fri, 18 Jun 2021 23:00:50 +0000
INF f67ed340 utils.cpp 616 CLogHelper ryzom_installer : Processor: Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz / ? Family 6 Model 142 Stepping 12 / GenuineIntel / 2300.000MHz / 2 Processors found
INF f67ed340 main.cpp 157 main ryzom_installer : Launched /home/vasya/ryzom_installer_linux/ryzom_installer_linux64
INF f67ed340 main.cpp 281 main ryzom_installer : Next step is DownloadData (3)
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback
qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init
qt.network.ssl: QSslSocket: cannot resolve sk_new_null
qt.network.ssl: QSslSocket: cannot resolve sk_push
qt.network.ssl: QSslSocket: cannot resolve sk_free
qt.network.ssl: QSslSocket: cannot resolve sk_num
qt.network.ssl: QSslSocket: cannot resolve sk_pop_free
qt.network.ssl: QSslSocket: cannot resolve sk_value
qt.network.ssl: QSslSocket: cannot resolve SSL_library_init
qt.network.ssl: QSslSocket: cannot resolve SSL_load_error_strings
qt.network.ssl: QSslSocket: cannot resolve SSL_get_ex_new_index
qt.network.ssl: QSslSocket: cannot resolve SSLv3_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv3_server_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_server_method
qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get_chain
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf
qt.network.ssl: QSslSocket: cannot resolve SSLeay
qt.network.ssl: Incompatible version of OpenSSL
QXcbConnection: XCB error: 3 (BadWindow), sequence: 498, resource id: 12599286, major code: 40 (TranslateCoords), minor code: 0
qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_CTX_new
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
WRN f67ed340 downloader.cpp 421 onError ryzom_installer : Network error Error creating SSL context () (99) when downloading https://download.ryzom.com/ryzom_live_data.7z
INF f67ed340 downloader.cpp 274 onHeadFinished ryzom_installer : HTTP status code 0 on HEAD for https://download.ryzom.com/ryzom_live_data.7z
QXcbConnection: XCB error: 3 (BadWindow), sequence: 958, resource id: 12599592, major code: 40 (TranslateCoords), minor code: 0
vn971 commented 3 years ago

This line is possibly relevant:

qt.network.ssl: Incompatible version of OpenSSL

And this is possibly the result (this line is also in red):

WRN f67ed340 downloader.cpp 421 onError ryzom_installer : Network error Error creating SSL context () (99) when downloading https://download.ryzom.com/ryzom_live_data.7z
vn971 commented 3 years ago

UPD: I've manually downloaded this file, and thought of trying to place it in ~/.local/share/Ryzom I was lucky enough to guess the location, and seemingly it worked! However, the bug really needs to be fixed for other people, one should not expect that from players, even from Linux players hahaha :sweat_smile:

BTW, I've also tried to install the game on latest Ubuntu and also got a network error (didn't check if it has exactly the same error log in console or not)

vn971 commented 3 years ago

In-game download of some "Patch" works fine BTW, it was downloaded after I registered and started the game.

kervala commented 3 years ago

Yes, Qt is dynamically loading libssl.so(.*) libs, I think installing OpenSSL 1.0.x (1.0.2 for example) should fix the issue. I have no idea if a more recent version of Qt will be supporting both OpenSSL 1.1+ and 1.0- (there was an API break between those 2 versions).

vn971 commented 3 years ago

@kervala downgrading openssl is not an option on my ArchLinux system.. As expected from Arch, I have the latest versions of everything. Openssl specifically is 1.1.1.k-1. Note that on latest stable ubuntu the game didn't work as well :(

Shelling (invoking curl / wget) might be more cross-platform?

kervala commented 3 years ago

@vn971 Aren't you able to install both OpenSSL 1.1.x and 1.0.x together ?

I think it should work if libssl.so is linked to libssl.so.1.1 and libssl.so.1.0 is not referenced.

Qt seems to check for libssl.so, then libssl.so.1, then libssl.so.1.0 and finally libssl.so.1.0.2 (or perhaps it's the opposite) until it succeeds to load symbols.

vn971 commented 3 years ago

@kervala oh, understood, thanks! Yes, Arch does provied the older OpenSSL as well, I see that now. I think it makes sense to focus on users besides me though (I was lucky with random-guessing the destination address as I wrote before already anyway, and have the game running).

For other players, do you want to change anything, or should I close the issue? (If as a player I'd be less fluent in terminal/openssl/github comments etc, I'd definitely not succeed in running Ryzom, and thus the game would lose me as a player.)