RetroShare is a Free and Open Source cross-platform, Friend-2-Friend and secure decentralised communication platform.
Go to file
2019-11-23 15:11:22 +01:00
build_scripts Android reduce toolchain cross-compilation time 2019-11-05 10:22:25 +01:00
data Add missing categories to desktop file 2019-02-05 15:02:15 +01:00
jsonapi-generator fixed compilation by modifying wrappers to account for the shared_ptr mService 2019-11-23 15:11:22 +01:00
libbitdht/src added compile option to use sanitizer and already fixed a few misalignment errors with it 2019-05-11 22:25:02 +02:00
libresapi/src switched to RsLoginHelper for login attempt in rs-service. Moved commandline arguments to main executable using a new struct named RsConfigOptions 2019-08-29 23:15:46 +02:00
libretroshare/src fixed compilation by modifying wrappers to account for the shared_ptr mService 2019-11-23 15:11:22 +01:00
openpgpsdk/src moved qmake files in openpgpsdk to Apache-2.0 2018-11-11 14:24:49 +01:00
plugins Fixed the toolbar frames 2019-10-05 16:02:44 +02:00
rapidjson-1.1.0 added rapidjson-1.1.0 code hard-coded in the source directory to allow everyone to compile without the need to tweak too much. When v1.1.0 is mainstream (espcially on ubuntu) we can revert back to an external dependency 2018-05-02 22:46:27 +02:00
retroshare-android-notify-service/src Make .pro files compiler agnostic on Android 2018-01-30 18:11:31 +01:00
retroshare-android-service/src Implement JSON API HTTP Basic authentication 2018-09-19 21:28:26 +02:00
retroshare-gui/src fixed compilation by modifying wrappers to account for the shared_ptr mService 2019-11-23 15:11:22 +01:00
retroshare-nogui/src code to embed webUI server in the main executable (initial version, not yet working) 2019-11-10 17:38:16 +01:00
retroshare-qml-app/src Multiple improvements to build process 2018-04-18 07:56:43 +02:00
retroshare-service fixed retroshare_service with embedded webui 2019-11-17 22:01:49 +01:00
supportlibs Update udp-discovery-cpp and android openssl 2019-08-29 15:52:07 +02:00
tests fixed retroshare.project email in licenses 2018-11-11 20:42:48 +01:00
.gitignore revert .gitignore from previous commit 2019-10-14 13:43:24 +02:00
.gitmodules Initial work on Broadcast Domain Discovery 2019-04-12 02:53:39 +02:00
.travis.yml Fix CMark compilation 2019-08-28 04:53:47 +02:00
android-prepare-toolchain.sh Merge branch 'json_experiments' 2018-04-27 18:17:09 +02:00
appveyor.yml Merge pull request #1624 from csoler/v0.6-RetroshareService 2019-09-09 10:33:18 +02:00
LICENSE.AGPL.txt add AGPL license text 2019-04-06 14:48:45 +02:00
LICENSE.txt Update and rename license.txt to LICENSE.txt 2015-12-15 09:11:12 -08:00
MacOS_X_InstallGuide.md Fix typo in Mac install guide 2018-02-04 10:37:45 +01:00
README-Android.asciidoc retroshare-service now build and runs fine on android (even older ones) 2018-10-05 22:29:49 +02:00
README.md Fix appveyor badge link 2019-04-12 11:49:42 +02:00
retroshare.pri enable terminal login and webui passwd except on android 2019-11-17 13:23:08 +01:00
RetroShare.pro Converted extra targets into an extra compiler: 2019-03-10 01:49:47 +01:00
TODO.circles.txt updated TODO 2016-03-20 22:23:32 -04:00
TODO.txt update todo 2016-02-24 21:51:34 +01:00
travis_makeOSXPackage.sh new branch for MacOS release 2019-01-23 20:21:18 +01:00
WindowsMSys2_InstallGuide.md Updated the readme to fix Windows' build 2019-05-12 18:30:30 +02:00

RetroShare

RetroShare is a decentralized, private and secure commmunication and sharing platform. RetroShare provides filesharing, chat, messages, forums and channels.

Build Status

Platform Build Status
GNU/Linux, MacOS, (via travis-ci) Build Status
Windows, MSys2 (via appveyor) Build status

Compilation on Windows

Follow this file : WindowsMSys2_InstallGuide.md

Compilation on MacOSX

Follow this file : MacOS_X_InstallGuide

Compilation for Android

Follow this file : README-Android

Compilation on Linux

  1. Install package dependencies:

    • Debian/Ubuntu
    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 rapidjson-dev
    
    • openSUSE
    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 rapidjson
    
    • Arch Linux
    pacman -S base-devel libgnome-keyring libmicrohttpd libupnp libxslt \
        libxss opencv qt4 speex speexdsp sqlcipher rapidjson
    
  2. Checkout the source code

    mkdir ~/retroshare
    cd ~/retroshare 
    git clone https://github.com/RetroShare/RetroShare.git trunk
    
  3. Compile

    cd trunk
    qmake CONFIG+=debug
    make
    
  4. Install

    sudo make install
    

    The executables produced will be:

      /usr/bin/retroshare
      /usr/bin/retroshare-nogui
    
  5. Uninstall:

    sudo make uninstall
    

Compile only retroshare-nogui

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

qmake
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
make INSTALL_ROOT=${PKGDIR} install

If libsqlcipher is not available as a package

You need to place sqlcipher so that the hierarchy is:

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

Using retroshare-nogui & webUI

The webUI needs to be enabled as a parameter option in retroshare-nogui:

./retroshare-nogui --webinterface 9090 --docroot /usr/share/retroshare/webui/

The webUI is only accessible on localhost:9090. It is advised to keep it that way so that your RS cannot be controlled using an untrusted connection.

To access your web UI from a distance, just open a SSH tunnel on it:

distant_machine:~/ >  ssh rs_host -L 9090:localhost:9090 -N

"rs_host" is the machine running retroshare-nogui. Then on the distant machine, access your webUI on

  http://localhost:9090

That also works with a retroshare GUI of course.

Compile and run tests

  qmake CONFIG+=tests
  make
  tests/unittests/unittests