Full Stack in The Wild

. . . или проекты старого сисадмина

Инструменты пользователя

Инструменты сайта


zmb:freerdp

FreeRDP

Подключение к серверам и рабочим станциям Microsoft Windows в режиме «удаленного рабочего стола» (RDP) является главной возможностью тонкого клиента, в основе которой лежит FreeRDP - лучший на сегодняшний день кроссплатформенный клиент удаленного доступа.

В проекте применяется оригинальная сборка (компиляция) FreeRDP:

  • использующая последние исходные коды клиента
  • генерирующая единственный исполняемый файл (без отдельных библиотек)
  • опирающаяся на мультимедийный движок FFmpeg

Сборочная станция

Очень удобно использовать выделенную (виртуальную) рабочую станцию для сборки клиента:

  OS: Аналогичная тонким клиентам, в минимальной конфигурации (можно без GUI)
 RAM: 512MB
SWAP: 512MB
 HDD:   4GB

Подключенные репозитории:

repo id                   repo name
------------------------------------------------------------------------
appstream                 OS 8 - AppStream
baseos                    OS 8 - BaseOS
powertools                OS 8 - PowerTools/CodeReady Builder
epel                      Extra Packages for Enterprise Linux 8 - x86_64
rpmfusion-free-updates    RPM Fusion for EL 8 - Free - Updates

Компилятор

dnf install git tar cmake make gcc-c++

Зависимости

Выясняются при анализе ошибок компиляции и (до)устанавливаются:

alsa-lib-devel
cairo-devel
ffmpeg-devel
libusb-devel
libX11-devel
libXcursor-devel
libXi-devel
libXinerama-devel
libxkbcommon-devel
libxkbfile-devel
libXrandr-devel
libXv-devel
openssl-devel
pcsc-lite-devel
pulseaudio-libs-devel
systemd-devel
wayland-devel
zlib-devel
xorg-x11-xauth

Компиляция

Скрипт-шаблон выполняющий всю работу:

compile.exe
#!/bin/bash
 
rm -rf FreeRDP
 
#################################################
#git clone https://github.com/FreeRDP/FreeRDP.git
#tar czf FreeRDP.tgz FreeRDP
#exit
#################################################
 
tar xf FreeRDP.tgz
cd FreeRDP
 
echo $(grep RAW_VERSION_STRING CMakeLists.txt | head -1 | cut -d \" -f 2 | cut -d - -f 1)-zmb-$(date +%Y%m%d) > .source_tag
 
cmake -Wno-dev \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_INSTALL_PREFIX=$(pwd) \
-DWITH_CUPS=OFF \
-DWITH_MANPAGES=OFF \
-DWITH_CAIRO=ON \
-DWITH_GSSAPI=OFF \
-DWITH_FUSE=OFF \
. | tee ../compile.log
 
#exit
 
make
make install

Для ускорения работы можно перейти в каталог /dev/shm:

cd /dev/shm
ln -fsv /path/to/compile.exe
./compile.exe

Результат:

FreeRDP/bin/xfreerdp /version
This is FreeRDP version 3.0.0-zmb-20210417 (8cd61a01f)