Subject: [PATCH 2/8] gnu: qemu: Enable spice usb redirection support.

From: Andy Patterson <[email-masked]>
Date: Sun, 15 Oct 2017 16:03:22 -0400

* gnu/packages/virtualization.scm (qemu)[arguments]<#:configure-flags>: New
argument.
[inputs]: Add usbredir.
(qemu-minimal)[arguments]<#:configure-flags>: Restrict them even when they are
set by qemu.
[inputs]: Remove usbredir.
---
 gnu/packages/virtualization.scm | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 5cdf6d09b..24ffc2f28 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016, 2017 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2016 Ricardo Wurmus <[email-masked]>
 ;;; Copyright © 2017 Alex Vong <[email-masked]>
+;;; Copyright © 2017 Andy Patterson <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -85,7 +86,7 @@
      '(;; Running tests in parallel can occasionally lead to failures, like:
        ;; boot_sector_test: assertion failed (signature == SIGNATURE): (0x00000000 == 0x0000dead)
        #:parallel-tests? #f
-
+       #:configure-flags '("--enable-usb-redir")
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
@@ -152,6 +153,7 @@
        ("pixman" ,pixman)
        ("sdl" ,sdl)
        ("spice" ,spice)
+       ("usbredir" ,usbredir)
        ("util-linux" ,util-linux)
        ;; ("vde2" ,vde2)
        ("virglrenderer" ,virglrenderer)
@@ -188,14 +190,17 @@ server and embedded PowerPC, and S390 guests.")
     (name "qemu-minimal")
     (synopsis "Machine emulator and virtualizer (without GUI)")
     (arguments
-     `(#:configure-flags
-       ;; Restrict to the targets supported by Guix.
-       '("--target-list=i386-softmmu,x86_64-softmmu,mips64el-softmmu,arm-softmmu,aarch64-softmmu")
-       ,@(package-arguments qemu)))
+     (substitute-keyword-arguments (package-arguments qemu)
+       ((#:configure-flags _ '(list))
+        `(list
+          ,(string-append
+            "--target-list=i386-softmmu,x86_64-softmmu,mips64el-softmmu"
+            ",arm-softmmu,aarch64-softmmu")))))
 
     ;; Remove dependencies on optional libraries, notably GUI libraries.
     (inputs (fold alist-delete (package-inputs qemu)
-                  '("libusb" "mesa" "sdl" "spice" "virglrenderer")))))
+                  '("libusb" "mesa" "sdl" "spice" "virglrenderer"
+                    "usbredir")))))
 
 (define-public libosinfo
   (package
-- 
2.14.2