Remmina - The GTK+ Remote Desktop Client  v1.4.33
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.
Compile-on-Ubuntu-22.04.md
Go to the documentation of this file.
1 # Quick and dirty guide for compiling remmina on ubuntu 22.04
2 
3 These are instructions for people or software developers who want to contribute to the latest version of Remmina on Ubuntu 22.04.
4 
5 If you are an end user and you want to install the latest version of remmina, please use the "Remmina Team Ubuntu PPA - next branch", as explained on the [homepage of the wiki](https://gitlab.com/Remmina/Remmina/wikis/home).
6 
7 By following these instructions, you will get Remmina and FreeRDP compiled under the /opt/remmina_devel/ subdir, so they will not mess up your system too much. This is ideal for testing remmina.
8 
9 You will also find the uninstall instructions at the bottom of this page.
10 
11 **1.** Install all packages required to build freerdp and remmina:
12 
13 ```shell
14 sudo apt install build-essential git-core cmake libssl-dev libx11-dev libxext-dev libxinerama-dev \
15  libxcursor-dev libxdamage-dev libxv-dev libxkbfile-dev libasound2-dev libcups2-dev libxml2 libxml2-dev \
16  libxrandr-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
17  libxi-dev libavutil-dev \
18  libavcodec-dev libxtst-dev libgtk-3-dev libgcrypt20-dev libssh-dev libpulse-dev \
19  libvte-2.91-dev libxkbfile-dev libtelepathy-glib-dev libjpeg-dev \
20  libgnutls28-dev libavahi-ui-gtk3-dev libvncserver-dev \
21  libayatana-appindicator3-dev intltool libsecret-1-dev libwebkit2gtk-4.0-dev libsystemd-dev \
22  libsoup2.4-dev libjson-glib-dev libswresample-dev libsodium-dev \
23  libusb-1.0-0-dev libpcre2-dev libicu-dev libpython3-dev
24 ```
25 
26 **2.** Remove freerdp-x11 package and all packages containing the string remmina in the package name.
27 
28 ```shell
29 sudo apt purge "?name(^remmina.*)" "?name(^libfreerdp.*)" "?name(^freerdp.*)" "?name(^libwinpr.*)"
30 ```
31 
32 **3.** Create a new directory for development in your home directory, and cd into it
33 
34 ```shell
35 mkdir ~/remmina_devel
36 cd ~/remmina_devel
37 ```
38 
39 **4.** Download the latest source code of FreeRDP from its master branch
40 
41 ```shell
42 git clone --branch stable-2.0 https://github.com/FreeRDP/FreeRDP.git
43 cd FreeRDP
44 ```
45 
46 **5.** Configure FreeRDP for compilation (don't forget to include -DWITH_PULSE=ON)
47 
48 ```shell
49 cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSE2=ON -DWITH_CUPS=on -DWITH_ICU=on -DWITH_PULSE=on -DCMAKE_INSTALL_PREFIX:PATH=/opt/remmina_devel/freerdp .
50 ```
51 
52 Please note that the above line will make FreeRDP install in /opt/remmina_devel/freerdp
53 
54 **6.** Compile FreeRDP and install
55 
56 ```shell
57 make && sudo make install
58 ```
59 
60 **7.** Make your system dynamic loader aware of the new libraries you installed. For Ubuntu x64:
61 
62 ```shell
63 echo /opt/remmina_devel/freerdp/lib | sudo tee /etc/ld.so.conf.d/freerdp_devel.conf > /dev/null
64 sudo ldconfig
65 ```
66 
67 **8.** Create a symbolik link to the executable in /usr/local/bin
68 
69 ```shell
70 sudo ln -s /opt/remmina_devel/freerdp/bin/xfreerdp /usr/local/bin/
71 ```
72 
73 **9.** Test the new freerdp by connecting to a RDP host
74 
75 ```shell
76 xfreerdp +clipboard /sound:rate:44100,channel:2 /v:hostname /u:username
77 ```
78 
79 **10.** Now clone remmina repository to your devel dir:
80 
81 ```shell
82 cd ~/remmina_devel
83 git clone https://gitlab.com/Remmina/Remmina.git
84 ```
85 
86 **11.** Configure Remmina for compilation
87 
88 ```shell
89 cd Remmina
90 cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX:PATH=/opt/remmina_devel/remmina -DCMAKE_PREFIX_PATH=/opt/remmina_devel/freerdp .
91 ```
92 
93 **12.** Compile remmina and install it
94 
95 ```shell
96 make && sudo make install
97 ```
98 
99 **13.** Create a symbolik link to the the executable
100 
101 ```shell
102 sudo ln -s /opt/remmina_devel/remmina/bin/remmina /usr/local/bin/
103 ```
104 
105 **14.** Run remmina
106 
107 ```shell
108 remmina
109 ```
110 
111 Please note that icons and launcher files are not installed, so don't search for remmina using Unity Dash.
112 
113 ## Uninstall everything
114 
115 **1.** Remove the devel directory
116 
117 ```shell
118 rm -rf ~/remmina_devel/
119 ```
120 
121 **2.** Remove the binary directory
122 
123 ```shell
124 sudo rm -rf /opt/remmina_devel/
125 ```
126 
127 **3.** Cleanup symlinks and dynamic loader
128 
129 ```shell
130 sudo rm /etc/ld.so.conf.d/freerdp_devel.conf /usr/local/bin/remmina /usr/local/bin/xfreerdp
131 sudo ldconfig
132 ```