From f6f0f243adb46d4c50bd66f3442f7f9924a567d4 Mon Sep 17 00:00:00 2001 From: defnax <9952056+defnax@users.noreply.github.com> Date: Sat, 9 Aug 2025 13:21:37 +0200 Subject: [PATCH] Added fedora guide --- .../Linux_RedHat_InstallGuide.md | 128 ++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 build_scripts/RedHat+Fedora/Linux_RedHat_InstallGuide.md diff --git a/build_scripts/RedHat+Fedora/Linux_RedHat_InstallGuide.md b/build_scripts/RedHat+Fedora/Linux_RedHat_InstallGuide.md new file mode 100644 index 000000000..757b94a2f --- /dev/null +++ b/build_scripts/RedHat+Fedora/Linux_RedHat_InstallGuide.md @@ -0,0 +1,128 @@ + +## Compilation on Red Hat-based Linux + + +### Install package dependencies: +#### RedHat/Fedora +```bash + sudo dnf install mesa-libGL-devel gcc cmake rapidjson-devel \ + libupnp openssl sqlcipher sqlcipher-devel \ + botan2 botan2-devel json-c-devel bzip2-devel asio-devel libsecret libXScrnSaver-devel +``` + +To compile with Qt5: +```bash + sudo dnf install qt5-qtbase-devel qt5-qtmultimedia qt5-qtx11extras +``` + +To compile with Qt6: +```bash + sudo dnf install qt6-qtbase-devel qt6-qtmultimedia-devel qt6-qt5compat-devel +``` + +Additional dependencies for Feedreader plugin: +```bash + sudo dnf install libxml2-devel libxslt-devel libcurl-devel +``` + +### Checkout the source code +```bash + cd ~ + git clone https://github.com/RetroShare/RetroShare.git retroshare +``` + +### Checkout the submodules +```bash + cd retroshare + git submodule update --init --remote libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/ + git submodule update --init --remote supportlibs/librnp supportlibs/restbed supportlibs/rapidjson +``` + +### Compile +```bash + qmake CONFIG+=release CONFIG+=rs_jsonapi CONFIG+=rs_webui + make +``` + +The executable produced will be: +```bash + ./retroshare-gui/src/retroshare +``` + +### Install +```bash + sudo make install +``` + +The executable produced will be: +```bash + ~/usr/bin/RetroShare +``` + +### For packagers + +Packagers can use PREFIX and LIB\_DIR to customize the installation paths: +```bash + qmake PREFIX=/usr LIB_DIR=/usr/lib64 "CONFIG-=debug" "CONFIG+=release" + make + make INSTALL_ROOT=${PKGDIR} install +``` + +### SQLCipher +If libsqlcipher is not available as a package + +You need to place sqlcipher so that the hierarchy is: + + ~Home + | + +--- retroshare + | + +--- lib + | + +---- sqlcipher +```bash + mkdir lib + cd lib + git clone https://github.com/sqlcipher/sqlcipher.git --depth=1 --branch v3.4.1 + cd sqlcipher + ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto" + make + cd .. +``` + +### Build infos + +For the `FeedReader` it is required to append the config option `CONFIG+=retroshare_plugins`. +Make sure `plugins/plugins.pro` contains `FeedReader` in the list of plugins to compile. + +Do not mix plugins compiled with Qt5 with those compiled with Qt6. They work only if they are compiled +with the same Qt version as RetroShare. + +Voip is outdated and is not compileable on the latest Debian. + +For `Autologin` it is required to append the config option `CONFIG+=rs_autologin`. + + +### 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 Web interface + * rs_jsonapi: enable json api interface, required by rs_webui + * gxsthewire: enable Wire service (experimental) + * wikipoos: enable Wiki service (experimental) + * rs_use_native_dialogs: enable native dialogs (may cause crashes with some versions of Gtk) + * 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: + +```batch +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 +``` \ No newline at end of file