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

libssl1.0.0 Depreciated. New libssl-dev libssl1.1.0 I believe breaks Phantomjs #34

Open
snowthrills opened this issue Mar 19, 2018 · 6 comments

Comments

@snowthrills
Copy link

Attempts to install libssl1.0.0 with sudo apt-get install libssl1.0.0
Error

Package libssl1.0.0 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'libssl1.0.0' has no installation candidate

My Environment: > Raspberry PI 3b w/ Raspbian Image with desktop based on Debian Stretch Version:March 2018 Release date:2018-03-13 Kernel version:4.9

Error message:

phantomjs: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory

Tried to rebuild with (https://github.com/jprochazka/phantomjs-linux-armv7l )but end up with lots of errors

make[2]: Entering directory '/home/pi/Desktop/phantom/phantomjs/src/qt/qtbase/src/network'
g++ -c -include .pch/Qt5Network -pipe -O2 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -std=c++0x -fno-exceptions -Wall -W -D_REENTRANT -DQT_NO_MTDEV -DQT_NO_LIBUDEV -DQT_NO_EVDEV -DQT_NO_TSLIB -DQT_NO_LIBINPUT -DQT_NO_GRAPHICSVIEW -DQT_NO_GRAPHICSEFFECT -DQT_NO_STYLESHEET -DQT_NO_STYLE_CDE -DQT_NO_STYLE_CLEANLOOKS -DQT_NO_STYLE_MOTIF -DQT_NO_STYLE_PLASTIQUE -DQT_NO_PRINTPREVIEWDIALOG -DQT_NO_USING_NAMESPACE -DQT_BUILD_NETWORK_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_CORE_LIB -I. -I../../include -I../../include/QtNetwork -I../../include/QtNetwork/5.5.1 -I../../include/QtNetwork/5.5.1/QtNetwork -I../3rdparty/zlib -Ikernel -I../../include/QtCore/5.5.1 -I../../include/QtCore/5.5.1/QtCore -I../../include/QtCore -I.moc -I../../mkspecs/linux-g++ -o .obj/qsslcertificate_openssl.o ssl/qsslcertificate_openssl.cpp
ssl/qsslcertificate_openssl.cpp: In function ‘uint qHash(const QSslCertificate&, uint)’:
ssl/qsslcertificate_openssl.cpp:63:30: error: invalid use of incomplete type ‘X509 {aka struct x509_st}’
return qHashBits(x509->sha1_hash, SHA_DIGEST_LENGTH, seed);
^~
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from ../../include/QtNetwork/5.5.1/QtNetwork/private/../../../../../src/network/ssl/qsslcontext_openssl_p.h:53,
from ../../include/QtNetwork/5.5.1/QtNetwork/private/qsslcontext_openssl_p.h:1,
from ssl/qsslsocket_p.h:55,
from ssl/qsslsocket_openssl_p.h:63,
from ssl/qsslsocket_openssl_symbols_p.h:64,
from ssl/qsslcertificate_openssl.cpp:35:
/usr/include/openssl/ossl_typ.h:119:16: note: forward declaration of ‘X509 {aka struct x509_st}’
typedef struct x509_st X509;
^~~~~~~
ssl/qsslcertificate_openssl.cpp: In member function ‘QByteArray QSslCertificate::version() const’:
ssl/qsslcertificate_openssl.cpp:87:68: error: invalid use of incomplete type ‘X509 {aka struct x509_st}’
QByteArray::number(qlonglong(q_ASN1_INTEGER_get(d->x509->cert_info->version)) + 1);
^~
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from ../../include/QtNetwork/5.5.1/QtNetwork/private/../../../../../src/network/ssl/qsslcontext_openssl_p.h:53,
from ../../include/QtNetwork/5.5.1/QtNetwork/private/qsslcontext_openssl_p.h:1,
from ssl/qsslsocket_p.h:55,
from ssl/qsslsocket_openssl_p.h:63,
from ssl/qsslsocket_openssl_symbols_p.h:64,
from ssl/qsslcertificate_openssl.cpp:35:
/usr/include/openssl/ossl_typ.h:119:16: note: forward declaration of ‘X509 {aka struct x509_st}’
typedef struct x509_st X509;
^~~~~~~
ssl/qsslcertificate_openssl.cpp: In member function ‘QByteArray QSslCertificate::serialNumber() const’:
ssl/qsslcertificate_openssl.cpp:96:45: error: invalid use of incomplete type ‘X509 {aka struct x509_st}’
ASN1_INTEGER *serialNumber = d->x509->cert_info->serialNumber;
^~
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from ../../include/QtNetwork/5.5.1/QtNetwork/private/../../../../../src/network/ssl/qsslcontext_openssl_p.h:53,
from ../../include/QtNetwork/5.5.1/QtNetwork/private/qsslcontext_openssl_p.h:1,
from ssl/qsslsocket_p.h:55,
from ssl/qsslsocket_openssl_p.h:63,
from ssl/qsslsocket_openssl_symbols_p.h:64,
from ssl/qsslcertificate_openssl.cpp:35:
/usr/include/openssl/ossl_typ.h:119:16: note: forward declaration of ‘X509 {aka struct x509_st}’
typedef struct x509_st X509;
^~~~~~~
ssl/qsslcertificate_openssl.cpp: In member function ‘QSslKey QSslCertificate::publicKey() const’:
ssl/qsslcertificate_openssl.cpp:232:32: error: invalid use of incomplete type ‘X509 {aka struct x509_st}’
X509_PUBKEY *xkey = d->x509->cert_info->key;
^~
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from ../../include/QtNetwork/5.5.1/QtNetwork/private/../../../../../src/network/ssl/qsslcontext_openssl_p.h:53,
from ../../include/QtNetwork/5.5.1/QtNetwork/private/qsslcontext_openssl_p.h:1,
from ssl/qsslsocket_p.h:55,
from ssl/qsslsocket_openssl_p.h:63,
from ssl/qsslsocket_openssl_symbols_p.h:64,
from ssl/qsslcertificate_openssl.cpp:35:
/usr/include/openssl/ossl_typ.h:119:16: note: forward declaration of ‘X509 {aka struct x509_st}’
typedef struct x509_st X509;
^~~~~~~
ssl/qsslcertificate_openssl.cpp:236:29: error: invalid use of incomplete type ‘EVP_PKEY {aka struct evp_pkey_st}’
if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_RSA) {
^~
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from ../../include/QtNetwork/5.5.1/QtNetwork/private/../../../../../src/network/ssl/qsslcontext_openssl_p.h:53,
from ../../include/QtNetwork/5.5.1/QtNetwork/private/qsslcontext_openssl_p.h:1,
from ssl/qsslsocket_p.h:55,
from ssl/qsslsocket_openssl_p.h:63,
from ssl/qsslsocket_openssl_symbols_p.h:64,
from ssl/qsslcertificate_openssl.cpp:35:
/usr/include/openssl/ossl_typ.h:93:16: note: forward declaration of ‘EVP_PKEY {aka struct evp_pkey_st}’
typedef struct evp_pkey_st EVP_PKEY;
^~~~~~~~~~~
ssl/qsslcertificate_openssl.cpp:240:36: error: invalid use of incomplete type ‘EVP_PKEY {aka struct evp_pkey_st}’
} else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA) {
^~
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from ../../include/QtNetwork/5.5.1/QtNetwork/private/../../../../../src/network/ssl/qsslcontext_openssl_p.h:53,
from ../../include/QtNetwork/5.5.1/QtNetwork/private/qsslcontext_openssl_p.h:1,
from ssl/qsslsocket_p.h:55,
from ssl/qsslsocket_openssl_p.h:63,
from ssl/qsslsocket_openssl_symbols_p.h:64,
from ssl/qsslcertificate_openssl.cpp:35:
/usr/include/openssl/ossl_typ.h:93:16: note: forward declaration of ‘EVP_PKEY {aka struct evp_pkey_st}’
typedef struct evp_pkey_st EVP_PKEY;
^~~~~~~~~~~
ssl/qsslcertificate_openssl.cpp:245:36: error: invalid use of incomplete type ‘EVP_PKEY {aka struct evp_pkey_st}’
} else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_EC) {
^~
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from ../../include/QtNetwork/5.5.1/QtNetwork/private/../../../../../src/network/ssl/qsslcontext_openssl_p.h:53,
from ../../include/QtNetwork/5.5.1/QtNetwork/private/qsslcontext_openssl_p.h:1,
from ssl/qsslsocket_p.h:55,
from ssl/qsslsocket_openssl_p.h:63,
from ssl/qsslsocket_openssl_symbols_p.h:64,
from ssl/qsslcertificate_openssl.cpp:35:
/usr/include/openssl/ossl_typ.h:93:16: note: forward declaration of ‘EVP_PKEY {aka struct evp_pkey_st}’
typedef struct evp_pkey_st EVP_PKEY;
^~~~~~~~~~~
ssl/qsslcertificate_openssl.cpp:250:36: error: invalid use of incomplete type ‘EVP_PKEY {aka struct evp_pkey_st}’
} else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DH) {
^~
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from ../../include/QtNetwork/5.5.1/QtNetwork/private/../../../../../src/network/ssl/qsslcontext_openssl_p.h:53,
from ../../include/QtNetwork/5.5.1/QtNetwork/private/qsslcontext_openssl_p.h:1,
from ssl/qsslsocket_p.h:55,
from ssl/qsslsocket_openssl_p.h:63,
from ssl/qsslsocket_openssl_symbols_p.h:64,
from ssl/qsslcertificate_openssl.cpp:35:
/usr/include/openssl/ossl_typ.h:93:16: note: forward declaration of ‘EVP_PKEY {aka struct evp_pkey_st}’
typedef struct evp_pkey_st EVP_PKEY;
^~~~~~~~~~~
Makefile:21893: recipe for target '.obj/qsslcertificate_openssl.o' failed
make[2]: *** [.obj/qsslcertificate_openssl.o] Error 1
make[2]: Leaving directory '/home/pi/Desktop/phantom/phantomjs/src/qt/qtbase/src/network'
Makefile:213: recipe for target 'sub-network-make_first' failed
make[1]: *** [sub-network-make_first] Error 2
make[1]: Leaving directory '/home/pi/Desktop/phantom/phantomjs/src/qt/qtbase/src'
Makefile:44: recipe for target 'sub-src-make_first' failed
make: *** [sub-src-make_first] Error 2

ERROR: Failed to build PhantomJS! Building Qt Base failed.

@kevinabrandon
Copy link
Owner

Installing PhantomJS is very difficult, and it's been a while now since I got it working on a Pi3. I tried building and it failed for me too. Eventually I tried using prebuilt versions I found scattered all over github and eventually found one that happened to work. Unfortunately, I gave that Pi3 to a friend so I don't have access to it. I'll do a search and get back to you if I find which one that worked.

@kevinabrandon
Copy link
Owner

I think I may have gotten it from here: https://github.com/fg2it/phantomjs-on-raspberry

If it works please let me know and I'll update the project readme

@fg2it
Copy link

fg2it commented Mar 21, 2018

@snowthrills If you try my builds (the repo linked by kevinabradnon, to be specific, this build should work), I am interested in feedback 😄 (and if you are into it, I describe how you can build it yourself).
The problem with most of the build available for phantomjs, and that includes the one you try to rebuild, is that they don't follow the official way and that end up creating additional dependencies. For example, phantomjs 2.1.1 binary is not supposed to have dependency on libssl since it is supposed to be statically linked to openssl.
Anyway, feedback is welcome

@snowthrills
Copy link
Author

Thank you both.. Will give it a go this weekend. @kevinabrandon @fg2it

@snowthrills
Copy link
Author

I got a few spare moments at work today. Your build @fg2it works like a charm. Thank you!

Do you think I should I open an issue with on https://github.com/jprochazka/adsb-receiver repo @kevinabrandon for Pi installs?

@gonzalu
Copy link

gonzalu commented Nov 11, 2018

I fixed mine by

change apt repo config to also include Jessie and then update and install

sudo apt-get update
sudo apt-get install libssl1.0.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants