diff options
author | Tukusej’s Sirs <tukusejssirs@protonmail.com> | 2020-01-21 02:45:19 +0300 |
---|---|---|
committer | Tukusej’s Sirs <tukusejssirs@protonmail.com> | 2020-01-21 02:45:19 +0300 |
commit | 7798c1a832393b3d756c6b718f22d8bf62abb890 (patch) | |
tree | 11c77d52fca8cee34689ecc407d7ac1e9b9004c9 | |
parent | 45f006ff00e6bf218ac9d1820d9d52214a57b740 (diff) |
Add Compilation.md; Update Compilation-guide-for-CentOS.md for CentOS 8
-rw-r--r-- | Compilation/Compilation-guide-for-CentOS-7.md | 101 | ||||
-rw-r--r-- | Compilation/Compilation-guide-for-CentOS.md | 152 | ||||
-rw-r--r-- | Compilation/Compilation.md | 11 | ||||
-rw-r--r-- | _sidebar.md | 4 |
4 files changed, 165 insertions, 103 deletions
diff --git a/Compilation/Compilation-guide-for-CentOS-7.md b/Compilation/Compilation-guide-for-CentOS-7.md deleted file mode 100644 index a33164d..0000000 --- a/Compilation/Compilation-guide-for-CentOS-7.md +++ /dev/null @@ -1,101 +0,0 @@ -# Compilation guide for CentOS 7 - -These are the instructions for people who want to test the latest version of Remmina (`master` branch) on CentOS 7. - -This guide was tested on CentOS 7 GNOME Desktop without any other package/group. - -If you want to uninstall the program, follow the instructions in the step 0. - -**0.** It is important that no other `remmina` or `freerdp` version is installed, therefore we need to remove it. -```bash -# To check if a program is installed, we can use `whereis [program(s)]` -whereis freerdp remmina - -# When `freerdp` is installed from the CentOS repo, use this command to remove it -sudo yum -y remove freerdp* - -# When `freerdp` is installed from source code, enter the `freerdp` source code folder and run the following command -cd ${HOME}/git/freerdp -sudo rm $(cat install_manifest.txt) - -# When `remmina` is installed from the CentOS repo, use this command to remove it -sudo yum -y remove remmina* - -# When `remmina` is installed from source code, enter the `build` folder in `remmina` source code folder and run the following command -cd ${HOME}/git/remmina/build -sudo make uninstall - -# Finally, we need to delete the empty folders of `remmina` and `freerdp` -# This needs to be run for uninstallation of either programs -sudo rmdir $(find $(whereis freerdp remmina | grep -Po "^[^:]*: \K.*$") -type d | tac) -``` - -**1.** Add necessary repos. Note that on CentOS 7 GNOME Desktop only `epel` and `rpmfusion-free-updates` are not installed by default. I presume that `base`, `extras` and `updates` repos are installed on all version of CentOS 7. -```bash -# epel: required for `openjpeg2-devel`, `openssl-devel` -sudo yum -y install epel-release -# rpmfusion-free-updates: required for `ffmpeg-devel` -sudo yum -y install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %centos).noarch.rpm -``` - -**3.** Update your system and `yum` cache. This might require a reboot. -```bash -sudo yum -y update -``` - -**4.** Install dependencies of `freerdp` and `remmina`. -```bash -sudo yum -y install alsa-lib-devel avahi-ui-devel avahi-ui-gtk3 cmake cmake3 cups-devel \ -ffmpeg-devel gcc gcc-c++ git glib2-devel gnutls-devel gstreamer1-devel \ -gstreamer1-plugins-base-devel gtk3-devel json-glib-devel libappindicator-devel \ -libappindicator-gtk3 libappindicator-gtk3-devel libgcrypt-devel libgnome-keyring-devel \ -libSM-devel libsodium libsodium-devel libsoup-devel libssh-devel libvncserver-devel libX11-devel \ -libXcursor-devel libXdamage-devel libXext-devel libXi-devel libXinerama-devel libxkbfile-devel \ -libXrandr-devel libXtst-devel libXv-devel openjpeg2-devel openssl-devel pulseaudio-libs-devel \ -telepathy-glib-devel vte3-devel webkitgtk4-devel xmlto -``` - -**5.** Clone FreeRDP and Remmina repos. You may want to modify the `${HOME}/git/{freerdp,remmina}` paths and the folder names. -```bash -mkdir -p ${HOME}/git/{freerdp,remmina} -cd ${HOME}/git -git clone https://github.com/FreeRDP/FreeRDP.git freerdp -git clone https://gitlab.com/Remmina/Remmina.git remmina -``` - -**6.** Build FreeRDP. -``` -cd freerdp -mkdir build -cd build -# In the following line, the `DWITH_PULSE=ON` need to be included -cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSE2=ON -DWITH_PULSE=ON -DWITH_CUPS=on -DWITH_WAYLAND=off -DCMAKE_INSTALL_PREFIX:PATH=/usr .. -make && sudo make install -``` - -**7.** Make your system dynamic loader aware of the new libraries you installed -```bash -sudo ldconfig -``` - -**8.** Build Remmina. -```bash -mkdir ../../remmina/build -cd ../../remmina/build -# cd ../../remmina -# git checkout v1.3.4 -# mkdir build -# cd build -cmake3 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_PREFIX_PATH=/usr --build=build .. -make && sudo make install -``` - -**9.** Now you should be able to run Remmina with the following command or using the GUI. -```bash -remmina &> /dev/null & -``` - -NOTES for execution: - -* Current GNOME Shell versions does not include system tray, therefore vanilla GNOME will not show the Remmina system tray icon and menu. Press <kbd>Super</kbd>+<kbd>M</kbd> to see the Remmina icon on the message bar. If you want to fix this, you could install either [AppIndicator Support](https://extensions.gnome.org/extension/615/appindicator-support/) or [TopIcons Plus](https://extensions.gnome.org/extension/1031/topicons/). -* [This might be outdated] XFCE and other desktop environments without app indicator support, will not show you the system tray icon if you are executing Remmina from its compilation folder (e.g. `~/git/remmina`) because it contains a folder named `remmina`. See [Bug #1363277 on Launchpad](https://bugs.launchpad.net/libappindicator/+bug/1363277)
\ No newline at end of file diff --git a/Compilation/Compilation-guide-for-CentOS.md b/Compilation/Compilation-guide-for-CentOS.md new file mode 100644 index 0000000..4ea7f36 --- /dev/null +++ b/Compilation/Compilation-guide-for-CentOS.md @@ -0,0 +1,152 @@ +These are the instructions for people who want to test the latest version of Remmina (`master` branch) on CentOS 7. + +This guide was tested on vanilla CentOS 7 GNOME Desktop (specifically: [CentOS-7-x86_64-DVD-1908.iso](http://tux.rainside.sk/centos/7.7.1908/isos/x86_64/)) and CentOS 8 GNOME Desktop (specifically: [CentOS-8.1.1911-x86_64-dvd1.iso](http://tux.rainside.sk/centos/8.1.1911/isos/x86_64/)). The installation was done as `remmina` user. However, it should work on all CentOS 7+ versions. If you find anything not working, raise an [issue](https://gitlab.com/Remmina/Remmina/issues/new). + +Note that although on CentOS 8, there is `dnf` package manager, but `yum` is a symlink to it, so we decided to keep `yum` in this guide to make it usable on both CentOS versions without any modifications. + +If you want to uninstall the program, follow the instructions in the step 0. + +**0.** It is important that no other `remmina` or `freerdp` version is installed, therefore we need to remove it. +```bash +# To check if a program is installed, we can use `whereis [program(s)]` +whereis freerdp remmina + +# When `freerdp` is installed from the CentOS repo, use this command to remove it +sudo yum -y remove freerdp* + +# When `freerdp` is installed from source code, enter the `freerdp` source code folder and run the following command +cd ${HOME}/git/freerdp +sudo rm $(cat install_manifest.txt) + +# When `remmina` is installed from the CentOS repo, use this command to remove it +sudo yum -y remove remmina* + +# When `remmina` is installed from source code, enter the `build` folder in `remmina` source code folder and run the following command +cd ${HOME}/git/remmina/build +sudo make uninstall + +# Finally, we need to delete the empty folders of `remmina` and `freerdp` +# This needs to be run for uninstallation of either programs +sudo rmdir $(find $(whereis freerdp remmina | grep -Po "^[^:]*: \K.*$") -type d | tac) +``` + +**1.** Add necessary repos. Note that on CentOS 7 GNOME Desktop only `epel` and `rpmfusion-free-updates` are not installed by default. I presume that `base`, `extras` and `updates` repos are installed on all version of CentOS 7. +```bash +# epel: required for `openjpeg2-devel`, `openssl-devel` +# rpmfusion-free-updates: required for `ffmpeg-devel` +# PowerTools repo is needed on CentOS 8+ +# getpagespeed repo is needed on CentOS 8+: required for `libgnome-keyring-devel`, `libappindicator-devel` +# okay repo is needed on CentOS 8+; required for `avahi-ui-devel` +sudo yum -y install epel-release https://download1.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %centos).noarch.rpm +if [ $(rpm -E %centos) = 8 ]; then + sudo dnf config-manager --set-enabled PowerTools + sudo dnf -y install https://extras.getpagespeed.com/release-el$(rpm -E %centos)-latest.rpm + sudo rpm -ivh http://repo.okay.com.mx/centos/8/x86_64/release/okay-release-1-3.el8.noarch.rpm +fi +``` + +**3.** Update `yum` cache and packages. This step might require a reboot. +```bash +sudo yum -y upgrade +``` + +**4.** Install dependencies of `freerdp` and `remmina`. Note that the installation dependencies for FreeRDP and Remmina was merged. If you want to know exactly which program requires which package, see [Dependencies](#dependencies) section at the end of this document. +```bash +# Test if `vte3-devel` can be installed +# Note: `vte3*` was decrecated by Red Hat (src: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/7.6_release_notes/chap-red_hat_enterprise_linux-7.6_release_notes-deprecated_packages) +test_vte=$(yum info vte3-devel &>/dev/null; echo $?) + +if [ $test_vte = 0 ]; then + # On CentOS 7- + vte='vte3 vte3-devel' +else + # On CentOS 8+ + vte='vte291 vte291-devel' +fi + +sudo yum -y install $vte alsa-lib-devel atk-devel avahi-ui-devel avahi-ui-gtk3 cairo-devel \ + cmake3 cups-devel docbook-style-xsl ffmpeg-devel gcc gcc-c++ glib2-devel gnutls-devel \ + gstreamer1-devel gstreamer1-plugins-base-devel gtk3-devel harfbuzz-devel json-glib-devel \ + libappindicator-devel libappindicator-gtk3 libappindicator-gtk3-devel libgcrypt-devel \ + libgnome-keyring-devel libsecret-devel libSM-devel libsodium libsodium-devel libsoup-devel \ + libssh-devel libusb-devel libvncserver-devel libX11-devel libXcursor-devel libXdamage-devel \ + libXext-devel libXi-devel libXinerama-devel libxkbfile-devel libXrandr-devel libxslt \ + libxslt-devel libXtst-devel libXv-devel make ninja-build openjpeg2-devel openssl-devel \ + pango-devel pulseaudio-libs-devel webkitgtk4-devel xmlto xorg-x11-server-utils +``` + +**5.** Clone FreeRDP and Remmina repos. You may want to modify the `${HOME}/git/{freerdp,remmina}` paths and the folder names. +```bash +mkdir -p ${HOME}/git/{freerdp,remmina} +git clone https://github.com/FreeRDP/FreeRDP.git ${HOME}/git/freerdp +git clone https://gitlab.com/Remmina/Remmina.git ${HOME}/git/remmina +``` + +**6.** Build FreeRDP. +```bash +mkdir ${HOME}/git/freerdp/build +cd ${HOME}/git/freerdp/build +# In the following line, the `DWITH_PULSE=ON` option needs to be included +# Note: `-DCMAKE_INSTALL_LIBDIR=/usr/lib64` is required when `-DCMAKE_INSTALL_PREFIX:PATH` is not `/usr`; otherwise Remmina will not find the `libfreerdp*` libraries +cmake3 -DCMAKE_BUILD_TYPE=Debug -DWITH_SSE2=ON -DWITH_PULSE=ON -DWITH_CUPS=on -DWITH_WAYLAND=off -DCMAKE_INSTALL_LIBDIR=/usr/lib64 -DCMAKE_INSTALL_PREFIX:PATH=/opt .. +make && sudo make install + +# If you install FreeRDP and Remmina to `/opt`, you need to add `/opt/bin` to PATH +export PATH="$PATH:/opt/bin" +echo 'export PATH="$PATH:/opt/bin"' >> ${HOME}/.bashrc + +# You can test FreeRDP by connecting to an RDP host +xfreerdp +clipboard /sound:rate:44100,channel:2 /v:hostname /u:username +``` + +**7.** Make your system dynamic loader aware of the new libraries you installed +```bash +sudo ldconfig +``` + +**8.** Build Remmina. +```bash +mkdir ../../remmina/build +cd ../../remmina/build +# Note: `-DCMAKE_INSTALL_LIBDIR=/usr/lib64` is not required to successfully run Remmina, but `/usr/lib64` is the proper location for the libraries; again, it is not required at all when Remmina is installed to `/usr` +cmake3 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX:PATH=/opt -DCMAKE_INSTALL_LIBDIR=/usr/lib64 -DCMAKE_PREFIX_PATH=/usr --build=build .. +make && sudo make install +``` + +**9.** Now you should be able to run Remmina with the following command or using the GUI. +```bash +remmina &> /dev/null & +``` + +NOTES for execution: + +* Current GNOME Shell versions does not include system tray, therefore vanilla GNOME will not show the Remmina system tray icon and menu. Press <kbd>Super</kbd>+<kbd>M</kbd> to see the Remmina icon on the message bar. If you want to fix this, you could install either [AppIndicator Support](https://extensions.gnome.org/extension/615/appindicator-support/) or [TopIcons Plus](https://extensions.gnome.org/extension/1031/topicons/). +* [This might be outdated] XFCE and other desktop environments without app indicator support, will not show you the system tray icon if you are executing Remmina from its compilation folder (e.g. `~/git/remmina`) because it contains a folder named `remmina`. See [Bug #1363277 on Launchpad](https://bugs.launchpad.net/libappindicator/+bug/1363277) + +### Dependencies + +1. If you are cloning the repositories, you need `git`. + +2. FreeRDP dependencies: + +```bash +# Official guide (src: https://github.com/FreeRDP/FreeRDP/wiki/Compilation [rhel based]) +gcc cmake ninja-build openssl-devel libX11-devel libXext-devel libXinerama-devel libXcursor-devel libXi-devel libXdamage-devel libXv-devel libxkbfile-devel alsa-lib-devel cups-devel ffmpeg-devel glib2-devel libusb-devel +# We had to install these at least on CentOS 8, but they are probably required on CentOS 7 too; otherwise the build failed +make gcc-c++ pulseaudio-libs-devel libXrandr-devel +# Recommended: these are required to build man pages +libxslt libxslt-devel docbook-style-xsl +# Recommended: for multimedia redirection, audio and video playback +gstreamer1-devel gstreamer1-plugins-base-devel +# Recommended: for some X11 addon +xorg-x11-server-utils +# Recommended: at build-time, FreeRDP states that this is 'required by virtual:world' +cairo-devel +``` + +3. Remmina dependencies (besides FreeRDP and its dependencies): + +```bash +# `vte3 vte3-devel` should be installed when available; else install `vte291 vte291-devel` +cmake3 gtk3-devel libgcrypt-devel libssh-devel openjpeg2-devel gnutls-devel libgnome-keyring-devel avahi-ui-devel avahi-ui-gtk3 libvncserver-devel vte* vte*-devel libappindicator-devel libappindicator-gtk3 libappindicator-gtk3-devel libSM-devel webkitgtk4-devel json-glib-devel libsoup-devel libsodium libsodium-devel libXtst-devel xmlto harfbuzz-devel pango-devel atk-devel libsecret-devel +```
\ No newline at end of file diff --git a/Compilation/Compilation.md b/Compilation/Compilation.md new file mode 100644 index 0000000..8b65ea9 --- /dev/null +++ b/Compilation/Compilation.md @@ -0,0 +1,11 @@ +We have tested the compilation of Remmina on several operating systems. Unfortunately, some of these guides are outdated. If you find some issues (or even better: their solutions), raise an [issue](https://gitlab.com/Remmina/Remmina/issues/new) please. :smiley: + +- [Compilation guide for CentOS](/Compilation/Compilation-guide-for-CentOS) +- [Compile on Arch Linux](/Compilation/Compile-on-Arch-Linux) +- [Compile on Debian 10 Buster](/Compilation/Compile-on-Debian-10-Buster) +- [Compile on Debian 9 Stretch](/Compilation/Compile-on-Debian-9-Stretch) +- [Compile on Fedora 20 ~ 26](/Compilation/Compile-on-Fedora-20-~-26) +- [Compile on FreeBSD](/Compilation/Compile-on-FreeBSD) +- [Compile on Ubuntu 14.04](/Compilation/Compile-on-Ubuntu-14.04) +- [Compile on Ubuntu 16.04](/Compilation/Compile-on-Ubuntu-16.04) +- [Compile on Ubuntu 18.04](/Compilation/Compile-on-Ubuntu-18.04)
\ No newline at end of file diff --git a/_sidebar.md b/_sidebar.md index 59a7ae1..3100c60 100644 --- a/_sidebar.md +++ b/_sidebar.md @@ -5,7 +5,7 @@ - [Remmina usage FAQ](/Usage/Remmina-Usage-FAQ) - [Remmina user’s guide](/Usage/Remmina-User's-guide) - [Compilation](/Compilation) - - [Compilation guide for CentOS 7](/Compilation/Compilation-guide-for-CentOS-7) + - [Compilation guide for CentOS](/Compilation/Compilation-guide-for-CentOS) - [Compile on Arch Linux](/Compilation/Compile-on-Arch-Linux) - [Compile on Debian 10 Buster](/Compilation/Compile-on-Debian-10-Buster) - [Compile on Debian 9 Stretch](/Compilation/Compile-on-Debian-9-Stretch) @@ -30,4 +30,4 @@ - [Remmina RDP and HiDPI scaling](/Problems-and-tweaks/Remmina-RDP-and-HiDPI-scaling) - [Remmina VNC to Raspbian Stretch](/Problems-and-tweaks/Remmina-VNC-to-Raspbian-Stretch) - [Systray menu](/Problems-and-tweaks/Systray-menu) - - [vnc key mapping configuration](/Problems-and-tweaks/vnc-key-mapping-configuration) + - [vnc key mapping configuration](/Problems-and-tweaks/vnc-key-mapping-configuration)
\ No newline at end of file |