~ruther/guix-local

06da1a6b4fa919a64020ebf1a001b7e66134bd97 — Ludovic Courtès 10 years ago bb38ece
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.
4 files changed, 31 insertions(+), 22 deletions(-)

M gnu/packages/debug.scm
M gnu/packages/grub.scm
M gnu/packages/qemu.scm
M gnu/system/vm.scm
M gnu/packages/debug.scm => gnu/packages/debug.scm +2 -2
@@ 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)

M gnu/packages/grub.scm => gnu/packages/grub.scm +3 -3
@@ 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)))))

M gnu/packages/qemu.scm => gnu/packages/qemu.scm +24 -15
@@ 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")))))

M gnu/system/vm.scm => gnu/system/vm.scm +2 -2
@@ 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")