kevinabrandon / AboveTustin

ADS-B Twitter Bot. Uses dump1090-mutability to track airplanes and then tweets whenever an airplane flies overhead.
MIT License
72 stars 21 forks source link

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

Open snowthrills opened 6 years ago

snowthrills commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

@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 commented 6 years ago

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

snowthrills commented 6 years ago

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 commented 5 years ago

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