Compiling instructions

From Bitmessage Wiki
Revision as of 12:26, 10 July 2013 by Bmbmbm (talk | contribs)
Jump to navigation Jump to search

This page should help novice users run Bitmessage from the source code files.


Fedora + RHEL

Install dependencies:

Fedora and RHEL6 do not support EC in OpenSSL. Therefore we need Ringing Liberty's bitcoin repository to get a compatible library.

Repository for Fedora:

su -c 'yum install'

or this one for RedHat Enterprise Linux (RHEL):

su -c 'yum install'

Install dependencies:

su -c 'yum install python git openssl-compat-bitcoin-libs'

Download Bitmessage from GIT:

git clone $HOME/PyBitmessage

Run Bitmessage:

cd $HOME/PyBitmessage/src/ && LD_LIBRARY_PATH="/opt/openssl-compat-bitcoin/lib/" python

Other Distros

Note for Debian Squeeze (6.0) users: Debian Squeeze does not offer packages (like Python, OpenSSL) in versions that are needed for Bitmessage. You can still try to work around these problems. For Whonix (0.5.6) installation, follow the steps for Debian.

Install dependencies
APT-based distributions (Debian, Ubuntu): sudo apt-get install python openssl git python-qt4
Raspberry Pi (Raspbian "wheezy"): sudo apt-get install python-qt4
RPM-based distributions (Red Hat, Fedora): sudo yum install python openssl git
Download and run Bitmessage
git clone $HOME/PyBitmessage
cd $HOME/PyBitmessage/src/ && python


With Homebrew package manager


First, make sure you have not already installed Macports. Having both macports and homebrew on the same system is a recipe for disaster. Install Homebrew:

ruby -e "$(curl -fsSL"

Update Python:

brew install python
Install dependencies
brew install pyqt openssl
Download and run
cd ~/Desktop
git clone git://
cd PyBitmessage
python src/

With macports package manager

First, make sure you have not already installed Homebrew. Having both macports and homebrew on the same system is a recipe for disaster. Installing with macports or homebrew essentially has the same effect. Homebrew does some things better than ports, and ports does some things better than brew. If old-school floats your boat, these instructions are for you.

Select the macports installation that is right for your version of osx

Install dependencies and needed tools
sudo port install python2.7 py27-pyqt4 openssl
sudo port install git-core +svn +doc +bash_completion +gitweb
Download and run
cd ~/Desktop
git clone git://
cd PyBitmessage
python2.7 src/


  1. Download and install the latest revision of Python 2.7 (currently Python 2.7.3 from here). The Windows x86 MSI Installer is the right choice for most people. (64-bit users may want the 64-bit version).
  2. Test that it installed:
    1. Open a command prompt by going to Start > Run. Type 'cmd' then press enter.
    2. type 'python'. If python is installed, you should see the python version and the prompt: '>>>'
    3. If you see a message such as: "'Python is not recognized as an internal or external command..." then you must add the python path to your path environmental variable:
      1. Find the location where Python was installed (in particular, the location where python.exe exists). It might simply be in c:\Python2.7
      2. Follow these directions to add the Python path to your path variable.
      3. Close the command prompt window and reopen it.
      4. Try running 'python' again.
    4. Press Ctrl-Z to exit Python.
  3. Bitmessage has two dependencies. The first is PyQt. Download and install PyQt from here. You will want the Binary Package since it is already compiled for you. Be sure to select the version for Python 2.7. It is labeled as Py2.7.
  4. The second dependency is OpenSSL which you can download from here. There you will also notice the link to download the Visual C++ 2008 program in case you also find that you need that as well. (The OpenSSL installer will complain if you need to install the Visual C++ Redistributable.)
  5. Download the source code for PyBitmessage from GitHub. If it is in a zip file, you will need to extract it. There should be a few files and a few folders where one of the folders is 'src'.
  6. To run Bitmessage, navigate into the 'src' folder and then double click on the file, or in a command prompt, change directories to the 'src' directory which holds and type 'python'.

If you change user interface files

You can use Qt's Designer application to modify the user interface. After you do this, you will need to 'compile' .ui files into .py files.

  1. In a command prompt, change directories to the directory of your .ui file.
  2. Run 'pyuic4 example.ui >' If you get a message similar to 'pyuic4 is not recognized as an internal or external command' then you must add the PyQt directory to your system's path variable. This directory should hold pyuic4.bat. It might be in C:\Python27\Lib\site-packages\PyQt4. Remember to close the command window and reopen it after you change your path variable.

If you add icons to bitmessage_icons.qrc, then you must run this command: pyrcc4 bitmessage_icons.qrc -o

Optional: Compile into a stand-alone EXE

  1. Download PyInstaller.
  2. Copy Bitmessage's 'src' directory to the PyInstaller directory (which contains
  3. Run ' --onefile --noconsole --icon="src\images\can-icon.ico" src\'

This won't include the OpenSSL DLL file in the EXE; if you send it to someone who doesn't have OpenSSL installed, it will not run. To include the DLL file in the EXE, you must follow these steps:

  1. After following the steps above, you will see that pyinstaller created a folder called bitmessagemain. In that folder is a file: bitmessagemain.spec. Open it with a text editor.
  2. Below the line "a.datas," add this line: a.binaries + [('libeay32.dll', 'c:\\windows\\system32\\libeay32.dll', 'BINARY')],
  3. Save and close
  4. Run this command: bitmessagemain/bitmessagemain.spec

If you do not have the libeay32.dll you can download it here.