#### Beyond Linux® From Scratch (systemd Edition) - Version r13.0-491

### Chapter 41. Other X-based Programs

- Prev

  FontForge-20251009

- Next

  Gimp-3.2.4

- Up
- Home

# FreeRDP-3.25.0

## Introduction to FreeRDP

The FreeRDP package contains libraries and utilities for utilizing the Remote Desktop Protocol. This includes tools to run an RDP server as well as to connect to a computer using RDP. This is primarily used for connecting to Microsoft Windows computers, but can also be used on Linux and macOS.

### Note

Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

### Package Information

- Download (HTTP): https://github.com/freerdp/freerdp/archive/3.25.0/FreeRDP-3.25.0.tar.gz

- Download MD5 sum: 458dab16d43073f83fc13bf9689d4461

- Download size: 11 MB

- Estimated disk space required: 140 MB

- Estimated build time: 0.3 SBU (Using parallelism=4)

### Additional Downloads

- Required patch: https://www.linuxfromscratch.org/patches/blfs/svn/FreeRDP-3.25.0-upstream_fixes-1.patch

### FreeRDP Dependencies

#### Required

FFmpeg-8.1, ICU-78.3, and Xorg Libraries

#### Recommended

Cairo-1.18.4, docbook-xsl-nons-1.79.2, Fuse-3.18.2, JSON-C-0.18, MIT Kerberos V5-1.22.2, libusb-1.0.29, libxkbcommon-1.13.1, and Wayland-1.24.0

#### Optional

Cups-2.4.19, faac-1.50, FAAD2-2.11.2, fdk-aac-2.0.3, LAME-3.100, Linux-PAM-1.7.2, PulseAudio-17.0, SDL3-3.4.8 and SDL_ttf, cJSON, GSM, ocl-icd, mbedTLS, openh264, pcsclite, soxr, and uriparser

## Installation of FreeRDP

First, fix some compatibility problems known upstream that cause issues with gnome-connections:

    patch -Np1 -i ../FreeRDP-3.25.0-upstream_fixes-1.patch

Install FreeRDP by running the following commands:

    mkdir build &&
    cd    build &&

    cmake -D CMAKE_INSTALL_PREFIX=/usr   \
          -D CMAKE_SKIP_INSTALL_RPATH=ON \
          -D CMAKE_BUILD_TYPE=Release    \
          -D WITH_CAIRO=ON               \
          -D WITH_CLIENT_SDL=OFF         \
          -D WITH_DSP_FFMPEG=ON          \
          -D WITH_FFMPEG=ON              \
          -D WITH_PCSC=OFF               \
          -D WITH_SERVER=ON              \
          -D WITH_SERVER_CHANNELS=ON     \
          -D DOCBOOKXSL_DIR=/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2 \
          -W no-dev                      \
          -G Ninja ..                    &&
    ninja

This package does not come with a test suite.

Now, as the `root` user:

    ninja install

## Command Explanations

`-D CMAKE_SKIP_INSTALL_RPATH=ON`: This switch makes cmake remove hardcoded library search paths (rpath) when installing a binary executable file or a shared library. This package does not need rpath once it's installed into the standard location, and rpath may sometimes cause unwanted effects or even security issues.

`-D DOCBOOKXSL_DIR=/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2`: This parameter points CMake to the location of the Docbook XSL stylesheets, and is needed because BLFS does not use namespaced versions of the stylesheets. This is needed to create man pages. If you do not want manpages, pass -D WITH_MANPAGES=OFF to CMake instead.

`-D WITH_CAIRO=ON`: This parameter uses Cairo for HighDPI and window resizing support.

`-D WITH_CLIENT_SDL=OFF`: This parameter disables using SDL to draw the window when using the FreeRDP client. This is disabled because it depends on SDL_ttf. Remove this switch if you have the SDL_ttf package installed.

`-D WITH_FFMPEG=ON`: This parameter enables support for using ffmpeg for the H.264 graphics rendering mode, which is required when connecting via RDP to Windows Server 2012 (or Windows 8) or later hosts.

`-D WITH_DSP_FFMPEG=ON`: This parameter enables support for using ffmpeg for sound and microphone redirection.

`-D WITH_PCSC=OFF`: This parameter disables support for SmartCards since BLFS does not have the required dependency for it.

`-D WITH_SERVER=ON`: This parameter enables building the FreeRDP server components. Remove this parameter if you do not want to use the FreeRDP server.

`-D WITH_SERVER_CHANNELS=ON`: This parameter builds additional plugins for the FreeRDP server.

`-D WITH_LAME=ON`: Use this option if you wish to enable support for using LAME to provide MP3 Audio Codec support.

`-D WITH_FAAC=ON`: Use this option if you wish to enable support for using FAAC to provide AAC Audio Codec support.

`-D WITH_FAAD2=ON`: Use this option if you wish to enable support for using FAAD2 to provide AAC Audio Codec support.

`-D WITH_FDK_AAC=ON`: Use this option if you wish to enable support for using fdk-aac to provide AAC Audio Codec support.

`-D WITH_MBEDTLS=ON`: Use this option if you have the optional dependency mbedTLS installed and wish to use it as an alternative to OpenSSL for cryptography support.

`-D WITH_OPENCL=ON`: Use this option if you have the optional dependency ocl-icd installed and wish to use OpenCL support.

`-D WITH_OPENH264=ON`: Use this option if you have the optional dependency openh264 installed and wish to use it for H.264 support instead of ffmpeg.

`-D WITH_GSM=ON`: Use this option if you have the optional dependency GSM installed and wish to use GSM as an audio codec.

`-D WITH_SOXR=ON`: Use this option if you have the optional dependency soxr installed and wish to use it instead of ffmpeg for multimedia redirection.

## Contents

Installed Programs: freerdp-proxy, freerdp-shadow-cli, sfreerdp, sfreerdp-server, winpr-hash, winpr-makecert, wlfreerdp, xfreerdp
Installed Libraries: libfreerdp3.so, libfreerdp-client3.so, libfreerdp-server3.so, libfreerdp-server-proxy3.so, libfreerdp-shadow3.so, libfreerdp-shadow-subsystem3.so, librtdk0.so, libuwac0.so, libwinpr3.so, and libwinpr-tools3.so
Installed Directories: /usr/include/{freerdp3,rdtk0,uwac0,winpr3}, /usr/lib/cmake/{FreeRDP3,FreeRDP-Client3,FreeRDP-Proxy3,FreeRDP-Server3,rdtk0,uwac0,WinPR3,WinPR-tools3}, /usr/lib/freerdp3, /usr/share/FreeRDP

### Short Descriptions

freerdp-proxy | configures FreeRDP to use a proxy server
freerdp-shadow-cli | interfaces with the shadow functionality in FreeRDP
sfreerdp | is a utility for sharing an X display over RDP
sfreerdp-server | is a utility for sharing an X display over RDP
winpr-hash | creates a NTLM hash from a username and password pair
winpr-makecert | creates X.509 certificates for use with FreeRDP
wlfreerdp | is a RDP client for Wayland
xfreerdp | is a RDP client for X11
`libfreerdp3.so` | contains functions that provide RDP client and server functionality

- Prev

  FontForge-20251009

- Next

  Gimp-3.2.4

- Up
- Home