guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 52649552aae0d686a09be876c4b9a1e92bf80f30
Author: Danny Milosavljevic <[email protected]>
AuthorDate: Thu Jul 17 00:41:01 2025 +0200

    gnu: freerdp: Update to 3.16.0.
    
    * gnu/packages/patches/freerdp-3.16.0-rpath.patch: New file.
    * gnu/local.mk (dist_patch_DATA): Register it.
    * gnu/packages/rdesktop.scm (freerdp-3): New variable.
    
    Change-Id: Iaf706ea6df5fd5593326513da284d9223fada3d1
---
 gnu/local.mk                                    |  1 +
 gnu/packages/patches/freerdp-3.16.0-rpath.patch | 21 ++++++++++
 gnu/packages/rdesktop.scm                       | 53 +++++++++++++++++++++++++
 3 files changed, 75 insertions(+)

diff --git a/gnu/local.mk b/gnu/local.mk
index 52a7dc1b00..76f2e402b5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -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               \
diff --git a/gnu/packages/patches/freerdp-3.16.0-rpath.patch 
b/gnu/packages/patches/freerdp-3.16.0-rpath.patch
new file mode 100644
index 0000000000..d40a33de29
--- /dev/null
+++ b/gnu/packages/patches/freerdp-3.16.0-rpath.patch
@@ -0,0 +1,21 @@
+Author: Danny Milosavljevic <[email protected]>
+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
diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm
index 4e11229c98..d4dfbe30e0 100644
--- a/gnu/packages/rdesktop.scm
+++ b/gnu/packages/rdesktop.scm
@@ -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")

Reply via email to