Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

unable to run or build godot3 with openssl>1.0.0 installed #8283

Closed
novemberist opened this issue Apr 6, 2017 · 3 comments

Comments

Projects
None yet
5 participants
@novemberist
Copy link

commented Apr 6, 2017

Right now I can not successfully build godot3 from git or run precompiled binaries (from fixnum.org) due to what seems to be a version mismatch between my locally installed openssl package (version 1.1.0.e-1 on ArchLinux) and the thirdparty libraries that come with godot.

The following errors occur during the build process:

modules/openssl/stream_peer_openssl.cpp:167:3: error: member access into incomplete type 'BIO' (aka 'bio_st') b->init = 1; ^ /usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'bio_st' typedef struct bio_st BIO; ^ modules/openssl/stream_peer_openssl.cpp:168:3: error: member access into incomplete type 'BIO' (aka 'bio_st') b->num = 0; ^ /usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'bio_st' typedef struct bio_st BIO; ^ modules/openssl/stream_peer_openssl.cpp:169:3: error: member access into incomplete type 'BIO' (aka 'bio_st') b->ptr = NULL; ^ /usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'bio_st' typedef struct bio_st BIO; ^ modules/openssl/stream_peer_openssl.cpp:170:3: error: member access into incomplete type 'BIO' (aka 'bio_st') b->flags = 0; ^ /usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'bio_st' typedef struct bio_st BIO; ^ modules/openssl/stream_peer_openssl.cpp:178:3: error: member access into incomplete type 'BIO' (aka 'bio_st') b->ptr = NULL; /* sb_tls_remove() will free it */ ^ /usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'bio_st' typedef struct bio_st BIO; ^ modules/openssl/stream_peer_openssl.cpp:179:3: error: member access into incomplete type 'BIO' (aka 'bio_st') b->init = 0; ^ /usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'bio_st' typedef struct bio_st BIO; ^ modules/openssl/stream_peer_openssl.cpp:180:3: error: member access into incomplete type 'BIO' (aka 'bio_st') b->flags = 0; ^ /usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'bio_st' typedef struct bio_st BIO; ^ modules/openssl/stream_peer_openssl.cpp:188:48: error: member access into incomplete type 'BIO' (aka 'bio_st') StreamPeerOpenSSL *sp = (StreamPeerOpenSSL *)b->ptr; ^ /usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'bio_st' typedef struct bio_st BIO; ^ modules/openssl/stream_peer_openssl.cpp:222:48: error: member access into incomplete type 'BIO' (aka 'bio_st') StreamPeerOpenSSL *sp = (StreamPeerOpenSSL *)b->ptr; ^ /usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'bio_st' typedef struct bio_st BIO; ^ modules/openssl/stream_peer_openssl.cpp:268:31: error: variable has incomplete type 'BIO_METHOD' (aka 'bio_method_st') BIO_METHOD StreamPeerOpenSSL::_bio_method = { ^ /usr/include/openssl/bio.h:247:16: note: forward declaration of 'bio_method_st' typedef struct bio_method_st BIO_METHOD; ^ modules/openssl/stream_peer_openssl.cpp:355:5: error: member access into incomplete type 'BIO' (aka 'bio_st') bio->ptr = this; ^ /usr/include/openssl/ossl_typ.h:79:16: note: forward declaration of 'bio_st' typedef struct bio_st BIO; ^ modules/openssl/stream_peer_openssl.cpp:556:2: error: use of undeclared identifier 'CRYPTO_malloc_init' CRYPTO_malloc_init(); // Initialize malloc, free, etc for OpenSSL's use

Trying to run precompiled binaries, I get the following error message:

Downloads/godot: /usr/lib/libcrypto.so.1.0.0: version 'OPENSSL_1.0.0' not found (required by Downloads/godot) Downloads/godot: /usr/lib/libssl.so.1.0.0: version 'OPENSSL_1.0.0' not found (required by Downloads/godot)

I even installed the openssl-1.0 package on Arch to get legacy compatability, but that didn't help. I know such things are to be expected on the "bleeding edge", but why is my local openssl version even relevant when godot ships it's own static libraries?

Godot3
Arch Linux (with testing repos enabled)
installed openssl packages:
openssl 1.1.0.e-1
lib32-openssl 1.1.0.e-1
openssl-1.0 1.0.2.k-3 (installed this because i thought it might fix things)

@AlexHoratio

This comment has been minimized.

Copy link
Contributor

commented Apr 11, 2017

Anecdotally seems to work by passing builtin_openssl=yes to SCons. I also used Clang instead of GCC with use_llvm=yes, in case it's relevant.

@vicguedez

This comment has been minimized.

Copy link

commented May 1, 2017

I had kind of the same problem, couldn't build or run, I'm using Debian 9 (Stretch), installed libssl1.0.0 and then I could run builds from fixnum and such, but couldn't build anything. Using "builtin_openssl=yes" got it to work.

@akien-mga

This comment has been minimized.

Copy link
Member

commented May 2, 2017

Duplicate of #7085.

@akien-mga akien-mga closed this May 2, 2017

@akien-mga akien-mga added the archived label May 2, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.