guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/2] gnu: Add freerdp.


From: Thomas Danckaert
Subject: Re: [PATCH 1/2] gnu: Add freerdp.
Date: Tue, 07 Feb 2017 08:46:39 +0100 (CET)

Hi Ricardo,

From: Ricardo Wurmus <address@hidden>
Subject: Re: [PATCH 1/2] gnu: Add freerdp.
Date: Mon, 06 Feb 2017 21:11:34 +0100

+    (arguments
+     `(#:configure-flags
+       '("-DCMAKE_INSTALL_LIBDIR=lib"
+         "-DWITH_PULSE=ON"
+         "-DWITH_CUPS=ON" "-DWITH_SSE2=ON")

Is WITH_SSE2 used to ensure that this won’t use uncommon CPU features?

Actually I don't know... why it is used, and it works just fine
without it. I got it from the (possibly outdated) build instructions
at https://github.com/FreeRDP/FreeRDP/wiki/Compilation (which also
suggest to make a “debug” build without explaining why...?).

+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'patch-cmakelists
+           (lambda _
+             (substitute* "channels/client/CMakeLists.txt"
+ (("list\\(REMOVE_DUPLICATES CHANNEL_STATIC_CLIENT_ENTRIES\\)")
+                "")))))

Please add a comment that explains why this is needed. Also make sure to end the phase with “#t” because “substitute*” does not (yet) return a
truthy value.

I've added a comment. It's just that this list is somehow empty, and CMake complains that it can't remove duplicates from an empty list (...). (This fix is no longer needed when building freerdp's current master, but it seems I can't use freerdp master in current vinagre)

+       #:tests? #f)) ; no 'test' target

Actually, the usual target is “check” :) The comment should probably either say “no tests” or “no ’check’ target”. But this is nitpicking.

Actually, in a cmake-generated Makefile, it's 'make test' :-) But I'm happy with 'no tests', too. I was just aiming for absolute clarity.

[...]
Okay with the above changes.  Thanks!

Thanks for reviewing so quickly.

Thomas
From bcca85478a273789043f46e9574a58d26591bf56 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <address@hidden>
Date: Mon, 6 Feb 2017 17:19:06 +0100
Subject: [PATCH] gnu: Add freerdp.

* gnu/packages/rdesktop.scm (freerdp): New variable.
---
 gnu/packages/rdesktop.scm | 71 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 70 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm
index e40852b..f98ad35 100644
--- a/gnu/packages/rdesktop.scm
+++ b/gnu/packages/rdesktop.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Ludovic Courtès <address@hidden>
+;;; Copyright © 2017 Thomas Danckaert <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,9 +21,19 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages cups)
+  #:use-module (gnu packages gstreamer)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages tls)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xml))
 
 (define-public rdesktop
   (package
@@ -57,3 +68,61 @@
 capable of natively speaking Remote Desktop Protocol (RDP).  It allows users
 to remotely control a user's Windows desktop.")
     (license license:gpl3+)))
+
+(define-public freerdp
+  (package
+    (name "freerdp")
+    (version "1.2.0-beta1+android9")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "git://github.com/FreeRDP/FreeRDP.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 
"1m0lzrr7hkxfvc5f9p8snimv0rmin2463zhg25mv36wig8g5k7l3"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("xmlto" ,xmlto)))
+    (inputs
+     `(("libx11" ,libx11)
+       ("libxkbfile" ,libxkbfile)
+       ("libxcursor" ,libxcursor)
+       ("libxext" ,libxext)
+       ("libxi" ,libxi)
+       ("libxv" ,libxv)
+       ("libxrandr" ,libxrandr)
+       ("libxrender" ,libxrender)
+       ("libxinerama" ,libxinerama)
+       ("libxshmfence" ,libxshmfence)
+       ("libxml2" ,libxml2)
+       ("libxslt" ,libxslt)
+       ("cups" ,cups)
+       ("ffmpeg" ,ffmpeg)
+       ("pulseaudio" ,pulseaudio)
+       ("alsa-lib" ,alsa-lib)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("zlib" ,zlib)
+       ("openssl" ,openssl)))
+    (arguments
+     `(#:configure-flags
+       '("-DCMAKE_INSTALL_LIBDIR=lib"
+         "-DWITH_PULSE=ON"
+         "-DWITH_CUPS=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'patch-cmakelists
+           (lambda _ ; CMake returns an error on REMOVE_DUPLICATES because 
this list is empty.
+             (substitute* "channels/client/CMakeLists.txt"
+               (("list\\(REMOVE_DUPLICATES CHANNEL_STATIC_CLIENT_ENTRIES\\)")
+                "")))))
+       #:tests? #f)) ; no 'test' target
+    (home-page "https://www.freerdp.com";)
+    (synopsis "Remote Desktop Protocol implementation")
+    (description "FreeRDP implements Microsoft's Remote Desktop Protocol.  It
+consists of the @code{xfreerdp} client, libraries for client and server
+functionality, and Windows Portable Runtime (WinPR), a portable implementation
+of parts of the Windows API.")
+    (license license:asl2.0)))
-- 
2.7.4


reply via email to

[Prev in Thread] Current Thread [Next in Thread]