Compilation on Linux

Linux tux logo

Install package dependencies:


   sudo apt-get install libglib2.0-dev libupnp-dev qt4-dev-tools \
       libqt4-dev libssl-dev libxss-dev libgnome-keyring-dev libbz2-dev \
       libqt4-opengl-dev libqtmultimediakit1 qtmobility-dev libsqlcipher-dev \
       libspeex-dev libspeexdsp-dev libxslt1-dev libcurl4-openssl-dev \
       libopencv-dev tcl8.5 libmicrohttpd-dev

In Ubuntu 18.04 and Debian 9 there's no libqtmultimediakit1 and qtmobility-dev packages available. In order to compile in Ubuntu 18.04 you need to install these extra/alternative packages:

   sudo apt-get install libqt5x11extras5-dev qtmultimedia5-dev qttools5-dev


   sudo zypper install gcc-c++ libqt4-devel libgnome-keyring-devel \
       glib2-devel speex-devel libssh-devel protobuf-devel libcurl-devel \
       libxml2-devel libxslt-devel sqlcipher-devel libmicrohttpd-devel \
       opencv-devel speexdsp-devel libupnp-devel libavcodec-devel

Arch Linux

   pacman -S base-devel libgnome-keyring libmicrohttpd libupnp libxslt \
       libxss opencv qt4 speex sqlcipher

Checkout the source code

   mkdir ~/retroshare
   cd ~/retroshare 
   git clone trunk


   cd trunk
   qmake CONFIG+=debug


   sudo make install

The executables produced will be:

  • /usr/bin/RetroShare06
  • /usr/bin/RetroShare06-nogui

Compile retroshare-nogui only

If you want to run RetroShare on a server and don’t need the gui and plugins, you can run the following commands to only compile/install the nogui version:

    make retroshare-nogui
    sudo make retroshare-nogui-install_subtargets

For packagers

Packagers can use PREFIX and LIB_DIR to customize the installation paths:

    qmake PREFIX=/usr LIB_DIR=/usr/lib64 "CONFIG-=debug" "CONFIG+=release"
    make INSTALL_ROOT=${PKGDIR} install


If libsqlcipher is not available as a package

You need to place sqlcipher so that the hierarchy is:

      +--- trunk
      +--- lib
            +---- sqlcipher
    mkdir lib
    cd lib
    git clone git://
    cd sqlcipher
    ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto"
    cd ..

Compile and run tests

   qmake CONFIG+=tests  

Compilation on Windows


Qt Installation

Install Qt via: Qt Download

Use default options.
Add to the PATH environment variable


Depends on wich version of Qt you use.
Change build-all-mingw32make.bat with these values too if you don't use MSys2.

MSYS2 Installation

Choose your MSYS2 installer here: MSYS2

Follow install procedure.
Don't forget to sync & Update pacman.

   pacman --needed -Sy bash pacman pacman-mirrors msys2-runtime

Restart console

   pacman -Su

Install all default programms

   pacman -S base-devel git mercurial cvs wget p7zip gcc perl ruby python2

Choose only w64-i686 if you want only compilation in 32b architecture.

   pacman -S mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain

Install other binutils:

   pacman -S mingw-w64-i686-miniupnpc mingw-w64-x86_64-miniupnpc  
   pacman -S mingw-w64-i686-sqlite3 mingw-w64-x86_64-sqlite3  
   pacman -S mingw-w64-i686-speex mingw-w64-x86_64-speex  
   pacman -S mingw-w64-i686-opencv mingw-w64-x86_64-opencv  
   pacman -S mingw-w64-i686-ffmpeg mingw-w64-x86_64-ffmpeg  
   pacman -S mingw-w64-i686-libmicrohttpd mingw-w64-x86_64-libmicrohttpd  
   pacman -S mingw-w64-i686-libxslt mingw-w64-x86_64-libxslt

Add MSYS2 to PATH environment variable depends your windows


Git Installation

Install Git Gui or other client: Git Scm

Create a new directory named:


Right-click on it and choose: Git Bash Here

Paste this text on git console:

  git clone

Last Settings

In QtCreator Option Git add its path: C:\Program Files\Git\bin and select "Pull" with "Rebase"

Open an MSys2 32|64 shell
Move to build_scripts:

   cd /c/Development/GIT/RetroShare/msys2_build_libs/

Compile missing library


You can now compile RS into Qt Creator

For using, and debugging Plugins, you can use Symlinker to link the files in



Compilation on MacOS

MacOS logo

Qt Installation

Install Qt via: Qt Download

Use default options.
Add to the PATH environment variable with this temporary solution.

   export PATH=/users/$USER/Qt/5.5/clang_64/bin:$PATH

Depends on wich version of Qt you use.

MacPort Installation

Install MacPort and XCode following this guide: MacPort and XCode

Start XCode to get it updated and to able C compiler to create executables.

Install libraries

   $sudo port -v selfupdate
   $sudo port install openssl
   $sudo port install miniupnpc

For VOIP Plugin:

   $sudo port install speex-devel
   $sudo port install opencv

Get Your OSX SDK if missing: MacOSX-SDKs

Last Settings

In QtCreator Option Git add its path:

   C:\Program Files\Git\bin

and select "Pull" with "Rebase"

Compil missing libraries


   cd <your development directory>
   git clone
   cd sqlcipher
   ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto"
   sudo make install

NOTE, might be necessary to chmod 000 /usr/local/ssl temporarily during ./configure if homebrew uses newer, non-stock ssl dependencies found there. configure might get confused.


The one with port don't have good support.

   cd <your development directory>
   tar zxvf libmicrohttpd-0.9.46.tar.gz
   cd libmicrohttpd-0.9.46
   bash ./configure
   sudo make install

You can now compile RS into Qt Creator or with terminal

   cd <your development directory>
   git clone retroshare
   cd retroshare
   qmake; make

You can find compiled application on ./retroshare/retroshare-gui/src/