2015-08-07 18:59:21 -04:00
RetroShare
==============================
RetroShare is a decentralized, private and secure commmunication and sharing platform. RetroShare provides filesharing, chat, messages, forums and channels.
2016-06-15 14:53:56 -04:00
Build Status
------------
| Platform | Build Status |
| :------------- | :------------- |
| GNU/Linux, MacOS, (via travis-ci) | [![Build Status ](https://travis-ci.org/RetroShare/RetroShare.svg?branch=master )](https://travis-ci.org/RetroShare/RetroShare) |
2016-06-18 19:37:50 -04:00
| Windows, `MSys2` (via appveyor) | [![Build status ](https://ci.appveyor.com/api/projects/status/fu7q0ye6pge53579?svg=true )](https://ci.appveyor.com/project/PhenomRetroShare/retroshare-59qxh) |
2016-06-15 14:53:56 -04:00
Compilation on Windows
----------------------------
2016-10-21 13:56:02 -04:00
Follow this file : [WindowsMSys2_InstallGuide.md ](https://github.com/RetroShare/RetroShare/blob/master/WindowsMSys2_InstallGuide.md )
2016-06-15 14:53:56 -04:00
Compilation on MacOSX
----------------------------
2016-10-21 13:56:02 -04:00
Follow this file : [MacOS_X_InstallGuide ](https://github.com/RetroShare/RetroShare/blob/master/MacOS_X_InstallGuide.md )
2016-06-15 14:53:56 -04:00
2016-11-10 05:45:41 -05:00
Compilation for Android
---------------------------
Follow this file : [README-Android ](https://github.com/RetroShare/RetroShare/blob/master/README-Android.asciidoc )
2015-08-07 18:59:21 -04:00
Compilation on Linux
----------------------------
1. Install package dependencies:
* Debian/Ubuntu
```bash
sudo apt-get install libglib2.0-dev libupnp-dev qt4-dev-tools \
libqt4-dev libssl-dev libxss-dev libgnome-keyring-dev libbz2-dev \
2015-11-07 13:41:55 -05:00
libqt4-opengl-dev libqtmultimediakit1 qtmobility-dev libsqlcipher-dev \
2015-08-07 18:59:21 -04:00
libspeex-dev libspeexdsp-dev libxslt1-dev libcurl4-openssl-dev \
2015-08-22 19:07:28 -04:00
libopencv-dev tcl8.5 libmicrohttpd-dev
2015-08-07 18:59:21 -04:00
```
* openSUSE
```bash
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 \
2016-01-04 08:25:22 -05:00
opencv-devel speexdsp-devel libupnp-devel libavcodec-devel
2015-08-07 18:59:21 -04:00
```
* Arch Linux
```bash
pacman -S base-devel libgnome-keyring libmicrohttpd libupnp libxslt \
2017-01-04 15:13:45 -05:00
libxss opencv qt4 speex speexdsp sqlcipher
2015-08-07 18:59:21 -04:00
```
2. Checkout the source code
```bash
mkdir ~/retroshare
cd ~/retroshare
git clone https://github.com/RetroShare/RetroShare.git trunk
```
3. Compile
```bash
cd trunk
2015-08-31 15:40:52 -04:00
qmake CONFIG+=debug
2015-08-07 18:59:21 -04:00
make
```
2015-08-23 05:13:55 -04:00
4. Install
```bash
sudo make install
```
2015-08-07 18:59:21 -04:00
2015-08-23 05:13:55 -04:00
The executables produced will be:
2015-08-23 18:15:36 -04:00
2015-08-23 05:13:55 -04:00
/usr/bin/RetroShare06
/usr/bin/RetroShare06-nogui
2015-08-07 18:59:21 -04:00
2016-10-07 22:12:40 -04:00
5. Uninstall:
```bash
sudo make uninstall
```
2015-08-31 17:15:17 -04:00
Compile only retroshare-nogui
-----------------------------
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:
```bash
qmake
make retroshare-nogui
sudo make retroshare-nogui-install_subtargets
```
2015-08-23 18:15:36 -04:00
For packagers
-------------
Packagers can use PREFIX and LIB\_DIR to customize the installation paths:
```bash
2015-08-31 15:40:52 -04:00
qmake PREFIX=/usr LIB_DIR=/usr/lib64 "CONFIG-=debug" "CONFIG+=release"
2015-08-23 18:15:36 -04:00
make
make INSTALL_ROOT=${PKGDIR} install
```
2015-08-07 18:59:21 -04:00
If libsqlcipher is not available as a package
---------------------------------------------
You need to place sqlcipher so that the hierarchy is:
retroshare
|
+--- trunk
|
+--- lib
|
+---- sqlcipher
```bash
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:
```bash
./retroshare-nogui --webinterface 9090 --docroot /usr/share/RetroShare06/webui/
```
2016-02-14 04:23:26 -05:00
The webUI is only accessible on localhost:9090. It is advised to keep it that way so that your RS
2015-08-07 18:59:21 -04:00
cannot be controlled using an untrusted connection.
To access your web UI from a distance, just open a SSH tunnel on it:
```bash
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.
2016-02-14 04:23:37 -05:00
Compile and run tests
---------------------
2016-02-21 05:23:33 -05:00
qmake CONFIG+=tests
make
tests/unittests/unittests