M gnu/local.mk => gnu/local.mk +1 -0
@@ 1338,6 1338,7 @@ dist_patch_DATA = \
%D%/packages/patches/freeimage-unbundle.patch \
%D%/packages/patches/freeimage-CVE-2020-21428.patch \
%D%/packages/patches/freeimage-CVE-2020-22524.patch \
+ %D%/packages/patches/freerdp-3.16.0-rpath.patch \
%D%/packages/patches/freesolid-automake.patch \
%D%/packages/patches/freesolid-autotools.patch \
%D%/packages/patches/freesolid-configure.patch \
A gnu/packages/patches/freerdp-3.16.0-rpath.patch => gnu/packages/patches/freerdp-3.16.0-rpath.patch +21 -0
@@ 0,0 1,21 @@
+Author: Danny Milosavljevic <dannym@friendly-machines.com>
+Date: 2025-07-17
+License: Apache Software License 2.0
+
+diff -ru orig/FreeRDP/cmake/ConfigureRPATH.cmake FreeRDP/cmake/ConfigureRPATH.cmake
+--- orig/FreeRDP/cmake/ConfigureRPATH.cmake 2025-07-17 10:42:17.557667810 +0200
++++ FreeRDP/cmake/ConfigureRPATH.cmake 2025-07-17 11:32:13.692935801 +0200
+@@ -15,10 +15,10 @@
+ option(WITH_ADD_PLUGIN_TO_RPATH "Add extension and plugin path to RPATH" OFF)
+ if(WITH_ADD_PLUGIN_TO_RPATH)
+ set(CFG_INSTALL_RPATH
+- "\$ORIGIN/../${FREERDP_EXTENSION_REL_PATH}:\$ORIGIN/../${FREERDP_PLUGIN_PATH}:\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:\$ORIGIN/.."
++ "\$ORIGIN/../${FREERDP_EXTENSION_REL_PATH}:\$ORIGIN/../${FREERDP_PLUGIN_PATH}:\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:\$ORIGIN/..:\$ORIGIN/../.."
+ )
+ else()
+- set(CFG_INSTALL_RPATH "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:\$ORIGIN/..")
++ set(CFG_INSTALL_RPATH "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:\$ORIGIN/..:\$ORIGIN/../..")
+ endif()
+ endif()
+ endif(APPLE)
+Only in FreeRDP/: LIBS
M gnu/packages/rdesktop.scm => gnu/packages/rdesktop.scm +53 -0
@@ 32,6 32,7 @@
#:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
+ #:use-module (gnu packages)
#:use-module (gnu packages assembly)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
@@ 46,7 47,9 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
+ #:use-module (gnu packages kerberos)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages mp3)
@@ 56,6 59,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages pulseaudio)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages security-token)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
@@ 171,6 175,55 @@ functionality, and Windows Portable Runtime (WinPR), a portable implementation
of parts of the Windows API.")
(license license:asl2.0)))
+(define-public freerdp-3
+ (package
+ (inherit freerdp)
+ (name "freerdp")
+ (version "3.16.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FreeRDP/FreeRDP")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "093yyfd3lbbavg0scqka2m64xkn8y1hirfjsv01pdnm4fsrhhphw"))
+ (patches
+ (search-patches "freerdp-3.16.0-rpath.patch"))))
+ (inputs
+ (modify-inputs (package-inputs freerdp)
+ (prepend fuse icu4c mit-krb5 sdl3 sdl3-gfx sdl3-ttf)))
+ (arguments
+ (list #:build-type "Release"
+ #:configure-flags
+ #~(list
+ ;; Relax gcc-14's strictness.
+ (string-append "-DCMAKE_C_FLAGS="
+ " -Wno-error=incompatible-pointer-types"
+ " -Wno-error=int-conversion")
+ "-DWITH_JPEG=ON"
+ #$@(if (target-x86-64?)
+ #~("-DWITH_SSE2=ON")
+ #~())
+ "-DWITH_PULSE=ON"
+ "-DWITH_CAIRO=ON"
+ "-DWITH_CUPS=ON"
+ "-DBUILD_TESTING=ON"
+ "-DWITH_SERVER=ON" ;build servers
+ "-DWITH_SHADOW=ON" ;build shadow server
+ "-DWITH_PROXY=ON"
+ "-DWITH_OPENH264=ON") ; could also use ffmpeg instead
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-dlopen-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "winpr/libwinpr/smartcard/smartcard_pcsc.c"
+ (("\"libpcsclite[.]so[.]1\"")
+ (string-append "\""
+ (search-input-file inputs "/lib/libpcsclite.so.1")
+ "\""))))))))))
+
(define-public xrdp
(package
(name "xrdp")