gnu: qemu: Use 'modify-phases'.

* gnu/packages/qemu.scm (qemu)[arguments]: Use 'modify-phases'.
This commit is contained in:
Ludovic Courtès 2016-05-26 23:39:46 +02:00
parent 219b45567a
commit 05051e8bb1
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -69,55 +69,52 @@ (define-public qemu
;; boot_sector_test: assertion failed (signature == SIGNATURE): (0x00000000 == 0x0000dead)
#:parallel-tests? #f
#:phases (alist-replace
'configure
(lambda* (#:key inputs outputs (configure-flags '())
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs (configure-flags '())
#:allow-other-keys)
;; The `configure' script doesn't understand some of the
;; GNU options. Thus, add a new phase that's compatible.
(let ((out (assoc-ref outputs "out")))
(setenv "SHELL" (which "bash"))
;; The `configure' script doesn't understand some of the
;; GNU options. Thus, add a new phase that's compatible.
(let ((out (assoc-ref outputs "out")))
(setenv "SHELL" (which "bash"))
;; While we're at it, patch for tests.
(substitute* "tests/libqtest.c"
(("/bin/sh") (which "sh")))
;; The binaries need to be linked against -lrt.
(setenv "LDFLAGS" "-lrt")
(zero?
(apply system*
`("./configure"
,(string-append "--cc=" (which "gcc"))
"--disable-debug-info" ; save build space
"--enable-virtfs" ; just to be sure
,(string-append "--prefix=" out)
,@configure-flags)))))
(alist-cons-after
'install 'install-info
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Install the Info manual, unless Texinfo is missing.
(or (not (assoc-ref inputs "texinfo"))
(let ((out (assoc-ref outputs "out")))
(and (zero? (system* "make" "info"))
(let ((infodir (string-append out "/share/info")))
(mkdir-p infodir)
(for-each (lambda (info)
(copy-file
info
(string-append infodir "/" info)))
(find-files "." "\\.info$"))
#t)))))
(alist-cons-before
'check 'disable-test-qga
(lambda _
(substitute* "tests/Makefile"
;; Comment out the test-qga test, which needs /sys and
;; fails within the build environment.
(("check-unit-.* tests/test-qga" all)
(string-append "# " all)))
#t)
%standard-phases)))))
;; While we're at it, patch for tests.
(substitute* "tests/libqtest.c"
(("/bin/sh") (which "sh")))
;; The binaries need to be linked against -lrt.
(setenv "LDFLAGS" "-lrt")
(zero?
(apply system*
`("./configure"
,(string-append "--cc=" (which "gcc"))
"--disable-debug-info" ; save build space
"--enable-virtfs" ; just to be sure
,(string-append "--prefix=" out)
,@configure-flags))))))
(add-after 'install 'install-info
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Install the Info manual, unless Texinfo is missing.
(or (not (assoc-ref inputs "texinfo"))
(let ((out (assoc-ref outputs "out")))
(and (zero? (system* "make" "info"))
(let ((infodir (string-append out "/share/info")))
(mkdir-p infodir)
(for-each (lambda (info)
(copy-file
info
(string-append infodir "/" info)))
(find-files "." "\\.info$"))
#t))))))
(add-before 'check 'disable-test-qga
(lambda _
(substitute* "tests/Makefile"
;; Comment out the test-qga test, which needs /sys and
;; fails within the build environment.
(("check-unit-.* tests/test-qga" all)
(string-append "# " all)))
#t)))))
(inputs ; TODO: Add optional inputs.
`(("sdl" ,sdl)
("mesa" ,mesa)