summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-11-21 00:34:32 +0100
committerLudovic Courtès <ludo@gnu.org>2015-11-21 00:36:23 +0100
commit06da1a6b4fa919a64020ebf1a001b7e66134bd97 (patch)
treed4ecec28ab52712b5a1753732180350a4d70b282
parentbb38ece4585679c27ecc1f5a063f75dfbf864a45 (diff)
downloadguix-06da1a6b4fa919a64020ebf1a001b7e66134bd97.tar.gz
gnu: Add qemu-minimal.
* gnu/packages/qemu.scm (qemu): Exchange with former QEMU-HEADLESS.
(qemu-headless): Rename to...
(qemu-minimal): ... this.  New variable.  Pass --target-list.
* gnu/packages/debug.scm (qemu-2.3.0): Inherit from QEMU-MINIMAL.
* gnu/packages/grub.scm (qemu-for-tests): Likewise.
* gnu/system/vm.scm (expression->derivation-in-linux-vm, qemu-image):
Update to name change.
-rw-r--r--gnu/packages/debug.scm4
-rw-r--r--gnu/packages/grub.scm6
-rw-r--r--gnu/packages/qemu.scm39
-rw-r--r--gnu/system/vm.scm4
4 files changed, 31 insertions, 22 deletions
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 1e0034c100..dc94f97657 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -143,7 +143,7 @@ tools that process C/C++ code.")
 
 (define qemu-2.3.0
   (package
-    (inherit qemu-headless)
+    (inherit qemu-minimal)
     (version "2.3.0")
     (source (origin
               (method url-fetch)
@@ -157,7 +157,7 @@ tools that process C/C++ code.")
      ;; XXX: Disable tests because of GTester's rejection of duplicate test
      ;; names, which wasn't addressed in this version of QEMU.
      `(#:tests? #f
-       ,@(package-arguments qemu-headless)))))
+       ,@(package-arguments qemu-minimal)))))
 
 (define-public american-fuzzy-lop
   (let ((machine (match (or (%current-target-system)
diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm
index 7875a64186..79fc2f0aca 100644
--- a/gnu/packages/grub.scm
+++ b/gnu/packages/grub.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -41,7 +41,7 @@
   ;; <https://bugs.launchpad.net/bugs/947597> and fixed at
   ;; <http://bzr.savannah.gnu.org/lh/grub/trunk/grub/revision/4828>.
   ;; Work around it by using an older QEMU.
-  (package (inherit qemu-headless)
+  (package (inherit qemu-minimal)
     (version "1.3.1")
     (source (origin
              (method url-fetch)
@@ -55,7 +55,7 @@
     ;;   ERROR:tests/rtc-test.c:176:check_time: assertion failed (ABS(t - s) <= wiggle): (382597824 <= 2)
     ;; Simply disable the tests.
     (arguments `(#:tests? #f
-                          ,@(package-arguments qemu)))
+                 ,@(package-arguments qemu-minimal)))
 
     ;; The manual fails to build with Texinfo 5.x.
     (native-inputs (alist-delete "texinfo" (package-native-inputs qemu)))))
diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm
index 71600b2347..a6abb48913 100644
--- a/gnu/packages/qemu.scm
+++ b/gnu/packages/qemu.scm
@@ -38,7 +38,8 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages sdl)
-  #:use-module (gnu packages perl))
+  #:use-module (gnu packages perl)
+  #:use-module (srfi srfi-1))
 
 (define (qemu-patch commit file-name sha256)
   "Return an origin for COMMIT."
@@ -62,10 +63,9 @@
               (base32
                "1aicbplzdj5s5y13jmqyvfajay05x9dnkzd197waz8v6kha7d9d5")))
 
-(define-public qemu-headless
-  ;; This is QEMU without GUI support.
+(define-public qemu
   (package
-    (name "qemu-headless")
+    (name "qemu")
     (version "2.4.0.1")
     (source (origin
              (method url-fetch)
@@ -123,7 +123,11 @@
                   %standard-phases))))
 
     (inputs                                       ; TODO: Add optional inputs.
-     `(;; ("libaio" ,libaio)
+     `(("sdl" ,sdl)
+       ("mesa" ,mesa)
+       ("libusb" ,libusb)                         ;USB pass-through support
+
+       ;; ("libaio" ,libaio)
        ("glib" ,glib)
        ("ncurses" ,ncurses)
        ("libpng" ,libpng)
@@ -143,7 +147,7 @@
                      ("texinfo" ,texinfo)
                      ("perl" ,perl)))
     (home-page "http://www.qemu-project.org")
-    (synopsis "Machine emulator and virtualizer (without GUI)")
+    (synopsis "Machine emulator and virtualizer")
     (description
      "QEMU is a generic machine emulator and virtualizer.
 
@@ -163,12 +167,17 @@ server and embedded PowerPC, and S390 guests.")
     ;; Several tests fail on MIPS; see <http://hydra.gnu.org/build/117914>.
     (supported-systems (delete "mips64el-linux" %supported-systems))))
 
-(define-public qemu
-  ;; QEMU with GUI support.
-  (package (inherit qemu-headless)
-    (name "qemu")
-    (synopsis "Machine emulator and virtualizer")
-    (inputs `(("sdl" ,sdl)
-              ("mesa" ,mesa)
-              ("libusb" ,libusb)                  ;USB pass-through support
-              ,@(package-inputs qemu-headless)))))
+(define-public qemu-minimal
+  ;; QEMU without GUI support.
+  (package (inherit qemu)
+    (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")
+       ,@(package-arguments qemu)))
+
+    ;; Remove dependencies on optional libraries, notably GUI libraries.
+    (inputs (fold alist-delete (package-inputs qemu)
+                  '("sdl" "mesa" "libusb")))))
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 96ff27f90b..1492a0bb1c 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -92,7 +92,7 @@
                                              (system (%current-system))
                                              (linux linux-libre)
                                              initrd
-                                             (qemu qemu-headless)
+                                             (qemu qemu-minimal)
                                              (env-vars '())
                                              (modules
                                               '((gnu build vm)
@@ -185,7 +185,7 @@ made available under the /xchg CIFS share."
 (define* (qemu-image #:key
                      (name "qemu-image")
                      (system (%current-system))
-                     (qemu qemu-headless)
+                     (qemu qemu-minimal)
                      (disk-image-size (* 100 (expt 2 20)))
                      (disk-image-format "qcow2")
                      (file-system-type "ext4")