Remmina - The GTK+ Remote Desktop Client  v1.3.6
Remmina is a remote desktop client written in GTK+, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large monitors or tiny netbooks. Remmina supports multiple network protocols in an integrated and consistent user interface. Currently RDP, VNC, NX, XDMCP and SSH are supported.
Compilation-guide-for-CentOS-7.md
Go to the documentation of this file.
1 # Compilation guide for CentOS 7
2 
3 These are the instructions for people who want to test the latest version of Remmina (`master` branch) on CentOS 7.
4 
5 This guide was tested on CentOS 7 GNOME Desktop without any other package/group.
6 
7 If you want to uninstall the program, follow the instructions in the step 0.
8 
9 **0.** It is important that no other `remmina` or `freerdp` version is installed, therefore we need to remove it.
10 ```bash
11 # To check if a program is installed, we can use `whereis [program(s)]`
12 whereis freerdp remmina
13 
14 # When `freerdp` is installed from the CentOS repo, use this command to remove it
15 sudo yum -y remove freerdp*
16 
17 # When `freerdp` is installed from source code, enter the `freerdp` source code folder and run the following command
18 cd ${HOME}/git/freerdp
19 sudo rm $(cat install_manifest.txt)
20 
21 # When `remmina` is installed from the CentOS repo, use this command to remove it
22 sudo yum -y remove remmina*
23 
24 # When `remmina` is installed from source code, enter the `build` folder in `remmina` source code folder and run the following command
25 cd ${HOME}/git/remmina/build
26 sudo make uninstall
27 
28 # Finally, we need to delete the empty folders of `remmina` and `freerdp`
29 # This needs to be run for uninstallation of either programs
30 sudo rmdir $(find $(whereis freerdp remmina | grep -Po "^[^:]*: \K.*$") -type d | tac)
31 ```
32 
33 **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.
34 ```bash
35 # epel: required for `openjpeg2-devel`, `openssl-devel`
36 sudo yum -y install epel-release
37 # rpmfusion-free-updates: required for `ffmpeg-devel`
38 sudo yum -y install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %centos).noarch.rpm
39 ```
40 
41 **3.** Update your system and `yum` cache. This might require a reboot.
42 ```bash
43 sudo yum -y update
44 ```
45 
46 **4.** Install dependencies of `freerdp` and `remmina`.
47 ```bash
48 sudo yum -y install alsa-lib-devel avahi-ui-devel avahi-ui-gtk3 cmake cmake3 cups-devel \
49 ffmpeg-devel gcc gcc-c++ git glib2-devel gnutls-devel gstreamer1-devel \
50 gstreamer1-plugins-base-devel gtk3-devel json-glib-devel libappindicator-devel \
51 libappindicator-gtk3 libappindicator-gtk3-devel libgcrypt-devel libgnome-keyring-devel \
52 libSM-devel libsodium libsodium-devel libsoup-devel libssh-devel libvncserver-devel libX11-devel \
53 libXcursor-devel libXdamage-devel libXext-devel libXi-devel libXinerama-devel libxkbfile-devel \
54 libXrandr-devel libXtst-devel libXv-devel openjpeg2-devel openssl-devel pulseaudio-libs-devel \
55 telepathy-glib-devel vte3-devel webkitgtk4-devel xmlto
56 ```
57 
58 **5.** Clone FreeRDP and Remmina repos. You may want to modify the `${HOME}/git/{freerdp,remmina}` paths and the folder names.
59 ```bash
60 mkdir -p ${HOME}/git/{freerdp,remmina}
61 cd ${HOME}/git
62 git clone https://github.com/FreeRDP/FreeRDP.git freerdp
63 git clone https://gitlab.com/Remmina/Remmina.git remmina
64 ```
65 
66 **6.** Build FreeRDP.
67 ```
68 cd freerdp
69 mkdir build
70 cd build
71 # In the following line, the `DWITH_PULSE=ON` need to be included
72 cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSE2=ON -DWITH_PULSE=ON -DWITH_CUPS=on -DWITH_WAYLAND=off -DCMAKE_INSTALL_PREFIX:PATH=/usr ..
73 make && sudo make install
74 ```
75 
76 **7.** Make your system dynamic loader aware of the new libraries you installed
77 ```bash
78 sudo ldconfig
79 ```
80 
81 **8.** Build Remmina.
82 ```bash
83 mkdir ../../remmina/build
84 cd ../../remmina/build
85 # cd ../../remmina
86 # git checkout v1.3.4
87 # mkdir build
88 # cd build
89 cmake3 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_PREFIX_PATH=/usr --build=build ..
90 make && sudo make install
91 ```
92 
93 **9.** Now you should be able to run Remmina with the following command or using the GUI.
94 ```bash
95 remmina &> /dev/null &
96 ```
97 
98 NOTES for execution:
99 
100 * 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/).
101 * [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)