gnu: qemu: Use 'modify-phases'.
* gnu/packages/qemu.scm (qemu)[arguments]: Use 'modify-phases'.
This commit is contained in:
		
							parent
							
								
									219b45567a
								
							
						
					
					
						commit
						05051e8bb1
					
				
					 1 changed files with 43 additions and 46 deletions
				
			
		| 
						 | 
				
			
			@ -69,55 +69,52 @@
 | 
			
		|||
       ;; 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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue