AboveTustin
AboveTustin copied to clipboard
libssl1.0.0 Depreciated. New libssl-dev libssl1.1.0 I believe breaks Phantomjs
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.
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.
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
@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
Thank you both.. Will give it a go this weekend. @kevinabrandon @fg2it
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?
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