From 2ee9abe835affc2846670165998a68333a7b916b Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Wed, 30 Aug 2023 14:05:22 -0400 Subject: gnu: qemu: Update to 8.1.0. * gnu/packages/virtualization.scm (qemu): Update to 8.1.0. [source] : Replace qemu-disable-aarch64-migration-test.patch with qemu-disable-some-qtests-tests.patch. : Adjust for dtc relocation and meson and sgabios removal. [arguments] : Remove --meson flag. Remove sgabios from the --firmwarepath value. : Adjust replace-firmwares and delete-firmwares phases for sgabios removal. [inputs]: Remove sgabios. (qemu-minimal): Use package/inherit, which is more appropriate for a package variant. [arguments]: New disable-extra-tests phase. * gnu/packages/patches/qemu-disable-aarch64-migration-test.patch: Delete file. * gnu/packages/patches/qemu-disable-some-qtests-tests.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. Reviewed-by: Kaelyn --- gnu/packages/virtualization.scm | 43 +++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 25 deletions(-) (limited to 'gnu/packages/virtualization.scm') diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 9952dd125a..4ae0049269 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -15,7 +15,7 @@ ;;; Copyright © 2020, 2021 Brice Waegeneire ;;; Copyright © 2020 Mathieu Othacehe ;;; Copyright © 2020, 2021, 2022 Marius Bakke -;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer +;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer ;;; Copyright © 2020 Brett Gilio ;;; Copyright © 2021 Leo Famulari ;;; Copyright © 2021, 2022 Pierre Langlois @@ -164,16 +164,15 @@ (define (qemu-patch commit file-name sha256-bv) (define-public qemu (package (name "qemu") - (version "7.2.4") + (version "8.1.0") (source (origin (method url-fetch) (uri (string-append "https://download.qemu.org/qemu-" version ".tar.xz")) (sha256 - (base32 "0795l8xsy67fnh4mbdz40jm880iisd7q6d7ly6nfzpac3gjr8zyf")) - (patches (search-patches "qemu-build-info-manual.patch" - "qemu-disable-aarch64-migration-test.patch" + (base32 "0m8fbyr3xv6gi95ma0sksxfqmyj3pi4zcrgg5rvd8d73k08i033i")) + (patches (search-patches "qemu-disable-some-qtests-tests.patch" "qemu-fix-agent-paths.patch")) (modules '((guix build utils))) (snippet @@ -182,8 +181,6 @@ (define-public qemu (with-directory-excursion "pc-bios" ;; Delete firmwares provided by SeaBIOS. (for-each delete-file (find-files "." "^(bios|vgabios).*\\.bin$")) - ;; Delete SGABIOS. - (delete-file "sgabios.bin") ;; Delete ppc64 OpenBIOS. TODO: Remove sparc32 and sparc64 too ;; once they are supported in Guix. (delete-file "openbios-ppc") @@ -194,12 +191,11 @@ (define-public qemu (for-each delete-file (find-files "." "^(efi|pxe)-.*\\.rom$"))) ;; Delete bundled code that we provide externally. (for-each delete-file-recursively - '("dtc" "meson" + '("subprojects/dtc" "roms/ipxe" "roms/openbios" "roms/opensbi" - "roms/seabios" - "roms/sgabios")))))) + "roms/seabios")))))) (outputs '("out" "static" "doc")) ;5.3 MiB of HTML docs (build-system gnu-build-system) (arguments @@ -210,7 +206,6 @@ (define-public qemu (not (string=? "i686-linux" (%current-system)))) #:configure-flags #~(let ((gcc (search-input-file %build-inputs "/bin/gcc")) - (meson (search-input-file %build-inputs "bin/meson")) (openbios (search-input-file %build-inputs "share/qemu/openbios-ppc")) (opensbi (search-input-file @@ -218,25 +213,20 @@ (define-public qemu "share/qemu/opensbi-riscv64-generic-fw_dynamic.bin")) (seabios (search-input-file %build-inputs "share/qemu/bios.bin")) - (sgabios (search-input-file %build-inputs - "/share/qemu/sgabios.bin")) (ipxe (search-input-file %build-inputs "share/qemu/pxe-virtio.rom")) (out #$output)) (list (string-append "--cc=" gcc) ;; Some architectures insist on using HOST_CC. (string-append "--host-cc=" gcc) - (string-append "--meson=" meson) (string-append "--prefix=" out) - "--sysconfdir=/etc" "--enable-fdt=system" (string-append "--firmwarepath=" out "/share/qemu:" (dirname seabios) ":" (dirname ipxe) ":" (dirname openbios) ":" - (dirname opensbi) ":" - (dirname sgabios)) + (dirname opensbi)) (string-append "--smbd=" out "/libexec/samba-wrapper") "--disable-debug-info" ;for space considerations ;; The binaries need to be linked against -lrt. @@ -257,7 +247,6 @@ (define-public qemu (let* ((seabios (dirname (search-input-file inputs "share/qemu/bios.bin"))) (seabios-firmwares (find-files seabios "\\.bin$")) - (sgabios (search-input-file inputs "share/qemu/sgabios.bin")) (ipxe (dirname (search-input-file inputs "share/qemu/pxe-virtio.rom"))) (ipxe-firmwares (find-files ipxe "\\.rom$")) @@ -282,7 +271,7 @@ (define-public qemu (for-each (lambda (file) (symlink file (basename file))) (append seabios-firmwares ipxe-firmwares - (list openbios opensbi-riscv64 sgabios)))) + (list openbios opensbi-riscv64)))) (for-each (lambda (file) (format allowed-differences-whitelist "\"~a\",~%" file)) @@ -405,8 +394,7 @@ (define-public qemu (for-each delete-file (append '("openbios-ppc" - "opensbi-riscv64-generic-fw_dynamic.bin" - "sgabios.bin") + "opensbi-riscv64-generic-fw_dynamic.bin") (find-files "." "^(vga)?bios(-[a-z0-9-]+)?\\.bin$") (find-files "." "^(efi|pxe)-.*\\.rom$")))))) ;; Create a wrapper for Samba. This allows QEMU to use Samba without @@ -457,7 +445,6 @@ (define-public qemu pulseaudio sdl2 seabios-qemu - sgabios spice usbredir util-linux @@ -512,8 +499,7 @@ (define-public qemu (define-public qemu-minimal ;; QEMU without GUI support, only supporting the host's architecture - (package - (inherit qemu) + (package/inherit qemu (name "qemu-minimal") (outputs '("out" "doc")) (synopsis @@ -556,7 +542,14 @@ (define-public qemu-minimal #~(modify-phases #$phases (delete 'configure-user-static) (delete 'build-user-static) - (delete 'install-user-static))))) + (delete 'install-user-static) + (add-after 'disable-unusable-tests 'disable-extra-tests + (lambda _ + ;; Interesting, the iothreads-commit-active test only fails in + ;; qemu-minimal, not the complete variant (see: + ;; https://gitlab.com/qemu-project/qemu/-/issues/1855). + (delete-file + "tests/qemu-iotests/tests/iothreads-commit-active"))))))) ;; Remove dependencies on optional libraries, notably GUI libraries. (native-inputs (filter (lambda (input) -- cgit v1.2.3