diff options
author | Tukusej’s Sirs <tukusejssirs@protonmail.com> | 2020-02-21 21:30:47 +0300 |
---|---|---|
committer | Tukusej’s Sirs <tukusejssirs@protonmail.com> | 2020-02-21 21:30:47 +0300 |
commit | 7d1acfcc0637085428c42e846c37441a9d156ff3 (patch) | |
tree | 0d66a4bc144f3206adb9b5d542ecb38346d1dca9 /Compilation | |
parent | 9ffa94911512ea1b0014f1b8bf149a5c5002c0a3 (diff) |
Update Compilation-guide-for_RHEL.md
Diffstat (limited to 'Compilation')
-rw-r--r-- | Compilation/Compilation-guide-for-RHEL.md | 111 |
1 files changed, 72 insertions, 39 deletions
diff --git a/Compilation/Compilation-guide-for-RHEL.md b/Compilation/Compilation-guide-for-RHEL.md index 9420688..e5abd63 100644 --- a/Compilation/Compilation-guide-for-RHEL.md +++ b/Compilation/Compilation-guide-for-RHEL.md @@ -1,6 +1,6 @@ These are the instructions for people who want to test the latest version of Remmina (`master` branch) on RHEL-like operating systems. -Current version of 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/)), CentOS 8 Workstation (specifically: [CentOS-8.1.1911-x86_64-dvd1.iso](http://tux.rainside.sk/centos/8.1.1911/isos/x86_64/)) and Fedora 31 x86_64 (specifically: [Fedora-Workstation-Live-x86_64-31-1.9.iso](https://download.fedoraproject.org/pub/fedora/linux/releases/31/Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-31-1.9.iso)). However, it should work on all CentOS 7+ and Fedora 20+ versions. If you find anything not working, raise an [issue](https://gitlab.com/Remmina/Remmina/issues/new). +Current version of 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/)), CentOS 8 Workstation (specifically: [CentOS-8.1.1911-x86_64-dvd1.iso](http://tux.rainside.sk/centos/8.1.1911/isos/x86_64/)) and Fedora 31 x86_64 (specifically: [Fedora-Workstation-Live-x86_64-31-1.9.iso](https://download.fedoraproject.org/pub/fedora/linux/releases/31/Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-31-1.9.iso)). However, it should work on all CentOS 7+, Red Hat 7+ and Fedora 20+ versions. If you find anything not working, raise an [issue](https://gitlab.com/Remmina/Remmina/issues/new). Note that although on CentOS 8 and Fedora, they use `dnf` package manager, there is still the `yum` symlink to `dnf`, so we decided to keep `yum` in this guide to make it usable on all of these distributions without any modifications. @@ -16,7 +16,7 @@ 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 +cd ${HOME}/freerdp sudo rm $(cat install_manifest.txt) # When Remmina is installed from the CentOS repo, use this command to remove it @@ -24,7 +24,7 @@ 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 +cd ${HOME}/remmina/build sudo make uninstall # Finally, we need to delete the empty folders of Remmina and FreeRDP @@ -50,16 +50,16 @@ fi # epel (on CentOS only): required for `openjpeg2-devel`, `openssl-devel` # rpmfusion-free-updates (on both CentOS and Fedora): required for `ffmpeg-devel` # PowerTools (on CentOS 8+ only) -# getpagespeed (on CentOS 8+ only): -# required for `libgnome-keyring-devel`, `libappindicator-devel` -# okay (on CentOS 8+); required for `avahi-ui-devel` +# okay (on CentOS 8+); required for `avahi-ui-devel`, `openh264`, `libopenh264-devel`, `libx264-devel` sudo yum -y install $epel_repo \ https://download1.rpmfusion.org/free/${distro_name_short}/rpmfusion-free-release-${distro_version}.noarch.rpm if [ "$distro_name" = 'centos' ] && [ "$distro_version" = 8 ]; then - sudo dnf config-manager --set-enabled PowerTools - sudo dnf -y install https://extras.getpagespeed.com/release-el${distro_version}-latest.rpm - sudo rpm -ivh http://repo.okay.com.mx/centos/8/x86_64/release/okay-release-1-3.el${distro_version}.noarch.rpm + sudo dnf config-manager --enable PowerTools + sudo rpm -ivh http://repo.okay.com.mx/${distro_name}/${distro_version}/x86_64/release/okay-release-1-3.el${distro_version}.noarch.rpm + + # Disable okay repo for potential package conflicts + sudo dnf config-manager --disable okay fi ``` @@ -70,34 +70,41 @@ 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 the [Dependencies](#dependencies) section at the end of this document. ```bash -sudo yum -y install alsa-lib-devel atk-devel avahi-ui-devel avahi-ui-gtk3 cairo-devel \ - cmake3 cups-devel docbook-style-xsl ffmpeg-devel gcc gcc-c++ git 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 \ +sudo yum -y install alsa-lib-devel atk-devel avahi-ui-gtk3 cairo-devel cmake3 \ + cups-devel docbook-style-xsl ffmpeg-devel gcc gcc-c++ git glib2-devel gnutls-devel \ + gstreamer1-devel gstreamer1-plugins-base-devel gtk3-devel harfbuzz-devel \ + json-glib-devel libappindicator-gtk3 libappindicator-gtk3-devel libgcrypt-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 vte291 vte291-devel webkitgtk4-devel xmlto \ - xorg-x11-server-utils + libxslt-devel libXtst-devel libXv-devel make ninja-build openjpeg2-devel \ + openssl-devel pango-devel pulseaudio-libs-devel vte291 vte291-devel webkitgtk4-devel \ + xmlto xorg-x11-server-utils + +# On CentOS 8 +if [ "$distro_name" = 'centos' ] && [ "$distro_version" = 8 ]; then + sudo yum -y install --enablerepo=okay avahi-ui-devel openh264 libopenh264-devel libx264-devel +fi ``` -**5.** Clone FreeRDP and Remmina repos. You may want to modify the `${HOME}/git/{freerdp,remmina}` paths and the folder names. +**5.** Clone FreeRDP and Remmina repos. You may want to modify the `${HOME}/{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 +git clone https://github.com/FreeRDP/FreeRDP.git ${HOME}/freerdp +git clone https://gitlab.com/Remmina/Remmina.git ${HOME}/remmina ``` **6.** Build FreeRDP. ```bash -mkdir ${HOME}/git/freerdp/build -cd ${HOME}/git/freerdp/build +mkdir ${HOME}/freerdp/build +cd ${HOME}/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 +# Note: `-DWITH_OPENH264=ON -DWITH_X264=OFF` makes FreeRDP use H264 which results +# in extreme good quality for a quite good performance 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 .. + -DCMAKE_INSTALL_LIBDIR=/usr/lib64 -DCMAKE_INSTALL_PREFIX:PATH=/opt -DWITH_OPENH264=ON \ + -DWITH_X264=OFF .. make && sudo make install # If you install FreeRDP and Remmina to `/opt`, you need to add `/opt/bin` to PATH @@ -115,8 +122,8 @@ sudo ldconfig **8.** Build Remmina. ```bash -mkdir ../../remmina/build -cd ../../remmina/build +mkdir ${HOME}/remmina/build +cd ${HOME}/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` @@ -130,10 +137,37 @@ make && sudo make install remmina &> /dev/null & ``` -NOTES for execution: +## Notes + +### Remmina in the system tray on GNOME 3 + +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 [KStatusNotifierItem/AppIndicator Support](https://extensions.gnome.org/extension/615/appindicator-support/). + +Below is a guide how to install the extension. For more information on installing the `chrome-gnome-shell` , see the [documentation](https://wiki.gnome.org/Projects/GnomeShellIntegrationForChrome/Installation) + +<details> + <summary><b>How to install [KStatusNotifierItem/AppIndicator Support](https://extensions.gnome.org/extension/615/appindicator-support/) extension</b></summary> + +This method installs the extension locally (i.e. for current user only). + +1. Install `chrome-gnome-shell` package. + +```bash +sudo yum -y install chrome-gnome-shell +``` + +2. Install the browser extension. Go to [GNOME extension website](https://extensions.gnome.org) and click on _Click here to install browser extension_; or you can install it from [Firefox Browser Add-ons](https://addons.mozilla.org/en-US/firefox/addon/gnome-shell-integration/). + +3. Install the [KStatusNotifierItem/AppIndicator Support](https://extensions.gnome.org/extension/615/appindicator-support/) extension by clicking on the toggle on that page (it must be on `on` position). Then confirm the installation. + +4. Don't forget to re-login the GNOME. :smiley: +</details> + +### Remmina in the system tray on Xfce + +> :information_source: This might be outdated. If you know the current state of this issue or any workaround(s), open an [issue](https://gitlab.com/Remmina/Remmina/issues/new). -* 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) +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. `~/remmina`) because it contains a folder named `remmina`. For more infomation, see [Bug #1363277 on Launchpad](https://bugs.launchpad.net/libappindicator/+bug/1363277). ### Dependencies @@ -143,9 +177,9 @@ NOTES for execution: ```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 +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 @@ -162,10 +196,9 @@ 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 +atk-devel avahi-ui-devel avahi-ui-gtk3 cmake3 gnutls-devel gtk3-devel harfbuzz-devel \ + json-glib-devel libappindicator-devel libappindicator-gtk3 libappindicator-gtk3-devel \ + libgcrypt-devel libopenh264-devel libsecret-devel libSM-devel libsodium libsodium-devel \ + libsoup-devel libssh-devel libvncserver-devel libx264-devel libXtst-devel openh264 \ + openjpeg2-devel pango-devel vte291 vte291-devel webkitgtk4-devel xmlto ```
\ No newline at end of file |