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.
This commit is contained in:
Ludovic Courtès 2015-11-21 00:34:32 +01:00
parent bb38ece458
commit 06da1a6b4f
4 changed files with 31 additions and 22 deletions

View File

@ -143,7 +143,7 @@ tools that process C/C++ code.")
(define qemu-2.3.0 (define qemu-2.3.0
(package (package
(inherit qemu-headless) (inherit qemu-minimal)
(version "2.3.0") (version "2.3.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
@ -157,7 +157,7 @@ tools that process C/C++ code.")
;; XXX: Disable tests because of GTester's rejection of duplicate test ;; XXX: Disable tests because of GTester's rejection of duplicate test
;; names, which wasn't addressed in this version of QEMU. ;; names, which wasn't addressed in this version of QEMU.
`(#:tests? #f `(#:tests? #f
,@(package-arguments qemu-headless))))) ,@(package-arguments qemu-minimal)))))
(define-public american-fuzzy-lop (define-public american-fuzzy-lop
(let ((machine (match (or (%current-target-system) (let ((machine (match (or (%current-target-system)

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; 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> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -41,7 +41,7 @@
;; <https://bugs.launchpad.net/bugs/947597> and fixed at ;; <https://bugs.launchpad.net/bugs/947597> and fixed at
;; <http://bzr.savannah.gnu.org/lh/grub/trunk/grub/revision/4828>. ;; <http://bzr.savannah.gnu.org/lh/grub/trunk/grub/revision/4828>.
;; Work around it by using an older QEMU. ;; Work around it by using an older QEMU.
(package (inherit qemu-headless) (package (inherit qemu-minimal)
(version "1.3.1") (version "1.3.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
@ -55,7 +55,7 @@
;; ERROR:tests/rtc-test.c:176:check_time: assertion failed (ABS(t - s) <= wiggle): (382597824 <= 2) ;; ERROR:tests/rtc-test.c:176:check_time: assertion failed (ABS(t - s) <= wiggle): (382597824 <= 2)
;; Simply disable the tests. ;; Simply disable the tests.
(arguments `(#:tests? #f (arguments `(#:tests? #f
,@(package-arguments qemu))) ,@(package-arguments qemu-minimal)))
;; The manual fails to build with Texinfo 5.x. ;; The manual fails to build with Texinfo 5.x.
(native-inputs (alist-delete "texinfo" (package-native-inputs qemu))))) (native-inputs (alist-delete "texinfo" (package-native-inputs qemu)))))

View File

@ -38,7 +38,8 @@
#:use-module (gnu packages xdisorg) #:use-module (gnu packages xdisorg)
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages sdl) #: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) (define (qemu-patch commit file-name sha256)
"Return an origin for COMMIT." "Return an origin for COMMIT."
@ -62,10 +63,9 @@
(base32 (base32
"1aicbplzdj5s5y13jmqyvfajay05x9dnkzd197waz8v6kha7d9d5"))) "1aicbplzdj5s5y13jmqyvfajay05x9dnkzd197waz8v6kha7d9d5")))
(define-public qemu-headless (define-public qemu
;; This is QEMU without GUI support.
(package (package
(name "qemu-headless") (name "qemu")
(version "2.4.0.1") (version "2.4.0.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
@ -123,7 +123,11 @@
%standard-phases)))) %standard-phases))))
(inputs ; TODO: Add optional inputs. (inputs ; TODO: Add optional inputs.
`(;; ("libaio" ,libaio) `(("sdl" ,sdl)
("mesa" ,mesa)
("libusb" ,libusb) ;USB pass-through support
;; ("libaio" ,libaio)
("glib" ,glib) ("glib" ,glib)
("ncurses" ,ncurses) ("ncurses" ,ncurses)
("libpng" ,libpng) ("libpng" ,libpng)
@ -143,7 +147,7 @@
("texinfo" ,texinfo) ("texinfo" ,texinfo)
("perl" ,perl))) ("perl" ,perl)))
(home-page "http://www.qemu-project.org") (home-page "http://www.qemu-project.org")
(synopsis "Machine emulator and virtualizer (without GUI)") (synopsis "Machine emulator and virtualizer")
(description (description
"QEMU is a generic machine emulator and virtualizer. "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>. ;; Several tests fail on MIPS; see <http://hydra.gnu.org/build/117914>.
(supported-systems (delete "mips64el-linux" %supported-systems)))) (supported-systems (delete "mips64el-linux" %supported-systems))))
(define-public qemu (define-public qemu-minimal
;; QEMU with GUI support. ;; QEMU without GUI support.
(package (inherit qemu-headless) (package (inherit qemu)
(name "qemu") (name "qemu-minimal")
(synopsis "Machine emulator and virtualizer") (synopsis "Machine emulator and virtualizer (without GUI)")
(inputs `(("sdl" ,sdl) (arguments
("mesa" ,mesa) `(#:configure-flags
("libusb" ,libusb) ;USB pass-through support ;; Restrict to the targets supported by Guix.
,@(package-inputs qemu-headless))))) '("--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")))))

View File

@ -92,7 +92,7 @@
(system (%current-system)) (system (%current-system))
(linux linux-libre) (linux linux-libre)
initrd initrd
(qemu qemu-headless) (qemu qemu-minimal)
(env-vars '()) (env-vars '())
(modules (modules
'((gnu build vm) '((gnu build vm)
@ -185,7 +185,7 @@ made available under the /xchg CIFS share."
(define* (qemu-image #:key (define* (qemu-image #:key
(name "qemu-image") (name "qemu-image")
(system (%current-system)) (system (%current-system))
(qemu qemu-headless) (qemu qemu-minimal)
(disk-image-size (* 100 (expt 2 20))) (disk-image-size (* 100 (expt 2 20)))
(disk-image-format "qcow2") (disk-image-format "qcow2")
(file-system-type "ext4") (file-system-type "ext4")