mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-10-12 13:31:04 -04:00
3.8 KiB
3.8 KiB
Compilation on Linux
Install package dependencies:
Debian/Ubuntu
sudo apt-get install g++ cmake qt5-qmake qtmultimedia5-dev \
libqt5x11extras5-dev libbz2-dev libjson-c-dev libssl-dev libsqlcipher-dev \
libupnp-dev libxss-dev rapidjson-dev libbotan-2-dev libasio-dev
Additional packages to compile with Qt6:
sudo apt-get install qt6-base-dev qt6-multimedia-dev qt6-5compat-dev
To use only Qt6 the packages qt5-qmake qtmultimedia5-dev libqt5x11extras5-dev
are not needed.
Additional dependencies for Feedreader plugin:
sudo apt-get install libxml2-dev libxslt1-dev libcurl4-openssl-dev
Additional dependencies for Voip plugin:
sudo apt-get install libavcodec-dev libcurl4-openssl-dev \
libqt5multimedia5-plugins libspeexdsp-dev
Autologin:
sudo apt install libsecret-1-dev
openSUSE
sudo zypper install gcc-c++ cmake libqt5-qtbase-devel \
libqt5-qtmultimedia-devel libqt5-qtx11extras-devel libbz2-devel \
libopenssl-devel libupnp-devel libXss-devel sqlcipher-devel rapidjson-devel
Additional dependencies for plugins:
sudo zypper install ffmpeg-4-libavcodec-devel libcurl-devel libxml2-devel \
libxslt-devel speex-devel speexdsp-devel
Linux Mint
sudo apt-get install git g++ cmake qt5-qmake qtmultimedia5-dev \
libqt5x11extras5-dev libupnp-dev libxss-dev libssl-dev libsqlcipher-dev \
rapidjson-dev doxygen libbz2-dev libjson-c-dev libbotan-2-dev libasio-dev
Arch Linux
pacman -S base-devel libgnome-keyring cmake qt5-tools qt5-multimedia qt5-x11extras \
rapidjson libupnp libxslt libxss sqlcipher botan2 bzip2 json-c
Checkout the source code
cd ~
git clone https://github.com/RetroShare/RetroShare.git retroshare
Checkout the submodules
cd retroshare
git submodule update --init --remote libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/
git submodule update --init --remote supportlibs/librnp supportlibs/restbed supportlibs/rapidjson
Compile
qmake CONFIG+=release CONFIG+=rs_jsonapi CONFIG+=rs_webui
make
Install
sudo make install
The executable produced will be:
- /usr/bin/RetroShare
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
libsqlcipher
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 ..
Build options
- Mandatory
- release or debug: normally you would like to use the release option
- Extra features (optional)
- rs_autologin: enable autologin
- retroshare_plugins: build plugins
- rs_webui: enable remoting features
- rs_jsonapi: enable json api interface
- gxsthewire enable Wire service
- wikipoos enable Wiki service
- rs_use_native_dialogs enable native dialogs
- rs_deep_channels_index build with deep channel indexing support
- rs_deep_files_index build with deep file indexing support
- "CONFIG+=..." enable other extra compile time features, you can find the almost complete list in file <sourcefolder>\retroshare.pri
Example:
qmake CONFIG-=debug CONFIG+=release CONFIG+=rs_use_native_dialog CONFIG+=rs_gui_cmark
qmake CONFIG+=rs_jsonapi CONFIG+=rs_webui CONFIG+=rs_autologin
qmake CONFIG+=rs_deep_channels_index CONFIG += gxsthewire CONFIG += wikipoos