Gioacchino Mazzurco 678ee31a14
Fix compilation with GCC 6
Adding default include path to INCLUDEPATH break compilation with GCC 6
With many errors similar to this
x86_64-pc-linux-gnu-gcc -c -march=native -mtune=native -pipe -O0 -g -fno-omit-frame-pointer -fPIC -Wall -W -D_REENTRANT -DRS_ENABLE_GXS -DENABLE_WEBUI -DRS_NO_WARN_DEPRECATED -DRS_NO_WARN_CPP -DRS_GXS_TRANS -DOPENSSL_NO_IDEA -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I. -isystem /usr/include -I. -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtCore -I. -isystem /usr/include/libdrm -I/usr/lib64/qt5/mkspecs/linux-g++ -o temp/linux/obj/accumulate.o openpgpsdk/accumulate.c
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/ext/string_conversions.h:41:0,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/bits/basic_string.h:5417,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/string:52,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/bits/locale_classes.h:40,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/bits/ios_base.h:41,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/ios:42,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/ostream:38,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/iostream:39,
                 from ./bitdht/bdobj.h:32,
                 from ./bitdht/bdmsgs.h:34,
                 from bitdht/bdmsgs.cc:30:
/usr/lib/gcc/x86_64-pc-linux-gnu/6.4.0/include/g++-v6/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
 #include_next <stdlib.h>
                         ^

@see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129
2018-04-23 20:58:40 +02:00
2017-07-17 10:45:18 +02:00
2018-03-05 11:05:04 +01:00
2018-04-20 12:09:21 +02:00
2017-07-17 10:45:18 +02:00
2018-04-23 20:58:40 +02:00
2016-03-20 22:23:32 -04:00
2016-02-24 21:51:34 +01: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
    
    • 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
    
    • Arch Linux
    pacman -S base-devel libgnome-keyring libmicrohttpd libupnp libxslt \
        libxss opencv qt4 speex speexdsp sqlcipher
    
  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
Description
RetroShare is a Free and Open Source cross-platform, Friend-2-Friend and secure decentralised communication platform.
Readme 198 MiB
Languages
C++ 85.6%
C 7%
QMake 1.7%
HTML 1.4%
NSIS 1%
Other 3.1%