MacOS 10.9 install procedure 2015-02-01 On MacOS 10.9 with Homebrew freshly installed, these steps will prepare the machine to run Confidant Mail. brew install python brew install wxPython brew install openssl brew install gpg pip uninstall cryptography pip install --global-option=build_ext \ --global-option="-I/usr/local/Cellar/openssl/1.0.2/include" \ --global-option=build_ext \ --global-option="-L/usr/local/Cellar/openssl/1.0.2/lib" \ cryptography pip install twisted pip install PyOpenSSL pip install service_identity pip install pyenchant Afterward just download confmail-src.zip, unzip it, and run: /usr/local/bin/python config_chooser.py --------------------------------------------------------------------------- MacOS Porting Notes by inglem 2015-01-26 Confidant Mail can be made to work on a Macintosh. I do not have a Macintosh, and I do not have detailed knowledge of MacOS. However, I was able to test the program on MacOS 10.9 with xcode 6.1.1 and wxPython-3.0-osx-3.0.2.0-cocoa-py2.7.dmg, using the default python 2.7 and gpg provided by Apple. After I made minor changes to the configuration dialog to get it to work (grep for "darwin"), the UI is functional if not pretty. There is a more serious problem with OpenSSL. The version included is very old, and does not support TLS 1.2, therefore the code as written will not make TLS connections, and is unusable. Next I tried Homebrew, using the python 2.7 and OpenSSL 1.0.2 provided. I installed all the necessary components using brew and pip, and it almost worked. The TLSv1_2_METHOD was failing mysteriously. Here is the result of several hours of debugging: the python cryptography library, by default, is linking against the headers of the system-provided openssl (the old version), so even though python is dynamic-loading OpenSSL v1.0.2 (as determined by "lsof" command), it does not know about the new features such as TLS 1.2! The fix is: brew install openssl pip uninstall cryptography pip install --global-option=build_ext \ --global-option="-I/usr/local/Cellar/openssl/1.0.2/include" \ --global-option=build_ext \ --global-option="-L/usr/local/Cellar/openssl/1.0.2/lib" \ cryptography Once this evil little bug is squashed, the program works fine.