Update libraries and fix openssl 1.1 qt4 build.
Should hopefully fix this error due to homebrew removing openssl 1.0:
$ ./Armory
dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: /Applications/Armory.app/Contents/MacOS/Python
Reason: image not found
Abort trap: 6
@droark Could you try building with these changes after updating to the latest homebrew openssl?
@jameshilliard - Thanks for looking into this. Which version of macOS are you running? I recently upgraded my Mac and am now on 10.15.2. I'm getting some compile errors. I can fire up a 10.14 VM. I just wanted to get your info first.
I was trying to get this to work on 10.14 but was having some build issues(that seem unrelated to openssl), the last release was built on 10.13 right? Can you try building on a 10.13 system?
Okay. I fired up and updated my 10.13 VM. I see the following Qt issue.
clang++ -headerpad_max_install_names -stdlib=libc++ -mmacosx-version-min=10.7 -arch x86_64 -single_module -dynamiclib -compatibility_version 4.8 -current_version 4.8.7 -install_name /Users/doug/Projects/armory-james/osxbuild/workspace/install/qt/lib/QtNetwork.framework/Versions/4/QtNetwork -o QtNetwork .obj/release-shared/qftp.o .obj/release-shared/qhttp.o .obj/release-shared/qhttpnetworkheader.o .obj/release-shared/qhttpnetworkrequest.o .obj/release-shared/qhttpnetworkreply.o .obj/release-shared/qhttpnetworkconnection.o .obj/release-shared/qhttpnetworkconnectionchannel.o .obj/release-shared/qnetworkaccessauthenticationmanager.o .obj/release-shared/qnetworkaccessmanager.o .obj/release-shared/qnetworkaccesscache.o .obj/release-shared/qnetworkaccessbackend.o .obj/release-shared/qnetworkaccessdebugpipebackend.o .obj/release-shared/qnetworkaccessfilebackend.o .obj/release-shared/qnetworkaccesscachebackend.o .obj/release-shared/qnetworkaccessftpbackend.o .obj/release-shared/qnetworkaccesshttpbackend.o .obj/release-shared/qnetworkcookie.o .obj/release-shared/qnetworkcookiejar.o .obj/release-shared/qnetworkrequest.o .obj/release-shared/qnetworkreply.o .obj/release-shared/qnetworkreplyimpl.o .obj/release-shared/qnetworkreplydataimpl.o .obj/release-shared/qnetworkreplyfileimpl.o .obj/release-shared/qabstractnetworkcache.o .obj/release-shared/qnetworkdiskcache.o .obj/release-shared/qhttpthreaddelegate.o .obj/release-shared/qhttpmultipart.o .obj/release-shared/qnetworksession.o .obj/release-shared/qnetworkconfigmanager.o .obj/release-shared/qnetworkconfiguration.o .obj/release-shared/qnetworkconfigmanager_p.o .obj/release-shared/qbearerengine.o .obj/release-shared/qbearerplugin.o .obj/release-shared/qsharednetworksession.o .obj/release-shared/qauthenticator.o .obj/release-shared/qhostaddress.o .obj/release-shared/qhostinfo.o .obj/release-shared/qurlinfo.o .obj/release-shared/qnetworkproxy.o .obj/release-shared/qnetworkinterface.o .obj/release-shared/qhostinfo_unix.o .obj/release-shared/qnetworkinterface_unix.o .obj/release-shared/qnetworkproxy_mac.o .obj/release-shared/qabstractsocketengine.o .obj/release-shared/qhttpsocketengine.o .obj/release-shared/qsocks5socketengine.o .obj/release-shared/qabstractsocket.o .obj/release-shared/qtcpsocket.o .obj/release-shared/qudpsocket.o .obj/release-shared/qtcpserver.o .obj/release-shared/qlocalsocket.o .obj/release-shared/qlocalserver.o .obj/release-shared/qnativesocketengine.o .obj/release-shared/qnativesocketengine_unix.o .obj/release-shared/qlocalsocket_unix.o .obj/release-shared/qlocalserver_unix.o .obj/release-shared/qssl.o .obj/release-shared/qsslcertificate.o .obj/release-shared/qsslconfiguration.o .obj/release-shared/qsslcipher.o .obj/release-shared/qsslerror.o .obj/release-shared/qsslkey.o .obj/release-shared/qsslsocket.o .obj/release-shared/qsslsocket_openssl.o .obj/release-shared/qsslsocket_openssl_symbols.o .obj/release-shared/moc_qhttpnetworkreply_p.o .obj/release-shared/moc_qnetworkaccesscache_p.o .obj/release-shared/moc_qnetworkaccessbackend_p.o .obj/release-shared/moc_qnetworkaccessdebugpipebackend_p.o .obj/release-shared/moc_qnetworkaccesshttpbackend_p.o .obj/release-shared/moc_qnetworkaccessfilebackend_p.o .obj/release-shared/moc_qnetworkaccessftpbackend_p.o .obj/release-shared/moc_qnetworkcookiejar.o .obj/release-shared/moc_qnetworkreply.o .obj/release-shared/moc_qabstractnetworkcache.o .obj/release-shared/moc_qnetworkdiskcache.o .obj/release-shared/moc_qhttpthreaddelegate_p.o .obj/release-shared/moc_qhttpmultipart.o .obj/release-shared/moc_qnetworkconfigmanager_p.o .obj/release-shared/moc_qnetworksession_p.o .obj/release-shared/moc_qbearerplugin_p.o .obj/release-shared/moc_qhostinfo_p.o .obj/release-shared/moc_qabstractsocketengine_p.o .obj/release-shared/moc_qhttpsocketengine_p.o .obj/release-shared/moc_qsocks5socketengine_p.o .obj/release-shared/moc_qtcpsocket.o .obj/release-shared/moc_qudpsocket.o .obj/release-shared/moc_qnativesocketengine_p.o -F/Users/doug/Projects/armory-james/osxbuild/workspace/unpackandbuild/qt-everywhere-opensource-src-4.8.7/lib -L/usr/local/opt/openssl/lib -L/Users/doug/Projects/armory-james/osxbuild/workspace/unpackandbuild/qt-everywhere-opensource-src-4.8.7/lib -framework QtCore -L/usr/local/opt/openssl/lib -L/Users/doug/Projects/armory-james/osxbuild/workspace/unpackandbuild/qt-everywhere-opensource-src-4.8.7/lib -lz -framework SystemConfiguration -framework CoreFoundation -framework CoreServices
Undefined symbols for architecture x86_64:
"_ASN1_INTEGER_get", referenced from:
QSslCertificate::version() const in qsslcertificate.o
(maybe you meant: __Z18q_ASN1_INTEGER_getP14asn1_string_st)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [../../lib/QtNetwork.framework/QtNetwork] Error 1
make[1]: *** [release] Error 2
Did you update homebrew/openssl to the latest version as well?
Ahhh, yeah, I forgot to update all that. Getting closer. I can build but now I have a sip issue when I attempt to start Armory. I feel like I've seen this before and have just forgotten how to resolve it.
Dougs-Mac:MacOS doug$ ./Armory --testnet
Traceback (most recent call last):
File "/Users/doug/Projects/armory-james/osxbuild/workspace/Armory.app/Contents/MacOS/py/usr/local/lib/armory/ArmoryQt.py", line 36, in <module>
from PyQt4.QtCore import *
ImportError: No module named sip
While we're at it, one good thing to do would be to mod the compile steps before this is pulled. For example, I had to run brew install python@2 in order to get back Python 2.x. I'm guessing there will be at least one more before this is all over.
Does it work if you take just the 2 openssl qt4 patches I added without any of the other changes?
@droark I made a minimal openssl patch in #613.