mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-26 22:38:07 -05:00
gnu: qemu: Update to 8.1.0.
* gnu/packages/virtualization.scm (qemu): Update to 8.1.0. [source] <patches>: Replace qemu-disable-aarch64-migration-test.patch with qemu-disable-some-qtests-tests.patch. <snippet>: Adjust for dtc relocation and meson and sgabios removal. [arguments] <configure-flags>: Remove --meson flag. Remove sgabios from the --firmwarepath value. <phases>: 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 <kaelyn.alexi@protonmail.com>
This commit is contained in:
parent
73958f7f04
commit
2ee9abe835
4 changed files with 71 additions and 39 deletions
|
@ -1865,7 +1865,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/python-werkzeug-tests.patch \
|
%D%/packages/patches/python-werkzeug-tests.patch \
|
||||||
%D%/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch \
|
%D%/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch \
|
||||||
%D%/packages/patches/qemu-build-info-manual.patch \
|
%D%/packages/patches/qemu-build-info-manual.patch \
|
||||||
%D%/packages/patches/qemu-disable-aarch64-migration-test.patch \
|
%D%/packages/patches/qemu-disable-some-qtests-tests.patch \
|
||||||
%D%/packages/patches/qemu-glibc-2.27.patch \
|
%D%/packages/patches/qemu-glibc-2.27.patch \
|
||||||
%D%/packages/patches/qemu-glibc-2.30.patch \
|
%D%/packages/patches/qemu-glibc-2.30.patch \
|
||||||
%D%/packages/patches/qemu-fix-agent-paths.patch \
|
%D%/packages/patches/qemu-fix-agent-paths.patch \
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
Disable the qtest-aarch64/migration-test, which sometimes fail non-deterministically.
|
|
||||||
See: https://gitlab.com/qemu-project/qemu/-/issues/1230.
|
|
||||||
|
|
||||||
--- qemu-7.1.0/tests/qtest/meson.build.old 1969-12-31 19:00:01.000000000 -0500
|
|
||||||
+++ qemu-7.1.0/tests/qtest/meson.build 2022-09-26 11:11:05.434209797 -0400
|
|
||||||
@@ -219,7 +219,6 @@
|
|
||||||
['arm-cpu-features',
|
|
||||||
'numa-test',
|
|
||||||
'boot-serial-test',
|
|
||||||
- 'migration-test',
|
|
||||||
'bcm2835-dma-test']
|
|
||||||
|
|
||||||
qtests_s390x = \
|
|
52
gnu/packages/patches/qemu-disable-some-qtests-tests.patch
Normal file
52
gnu/packages/patches/qemu-disable-some-qtests-tests.patch
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
Disable the qtest-aarch64/migration-test, which sometimes fail
|
||||||
|
non-deterministically (see:
|
||||||
|
https://gitlab.com/qemu-project/qemu/-/issues/1230).
|
||||||
|
|
||||||
|
Also disable the bios-tables-test, which may fail on older machines (see:
|
||||||
|
https://gitlab.com/qemu-project/qemu/-/issues/1098).
|
||||||
|
|
||||||
|
--- qemu-8.1.0/tests/qtest/meson.build.old 2023-08-30 11:48:27.871146249 -0400
|
||||||
|
+++ qemu-8.1.0/tests/qtest/meson.build 2023-08-30 13:53:25.994084948 -0400
|
||||||
|
@@ -1,6 +1,5 @@
|
||||||
|
slow_qtests = {
|
||||||
|
'ahci-test' : 60,
|
||||||
|
- 'bios-tables-test' : 120,
|
||||||
|
'boot-serial-test' : 60,
|
||||||
|
'migration-test' : 150,
|
||||||
|
'npcm7xx_pwm-test': 150,
|
||||||
|
@@ -81,9 +80,6 @@
|
||||||
|
config_all_devices.has_key('CONFIG_Q35') and \
|
||||||
|
config_all_devices.has_key('CONFIG_VIRTIO_PCI') and \
|
||||||
|
slirp.found() ? ['virtio-net-failover'] : []) + \
|
||||||
|
- (unpack_edk2_blobs and \
|
||||||
|
- config_all_devices.has_key('CONFIG_HPET') and \
|
||||||
|
- config_all_devices.has_key('CONFIG_PARALLEL') ? ['bios-tables-test'] : []) + \
|
||||||
|
qtests_pci + \
|
||||||
|
qtests_cxl + \
|
||||||
|
['fdc-test',
|
||||||
|
@@ -212,7 +208,6 @@
|
||||||
|
|
||||||
|
# TODO: once aarch64 TCG is fixed on ARM 32 bit host, make bios-tables-test unconditional
|
||||||
|
qtests_aarch64 = \
|
||||||
|
- (cpu != 'arm' and unpack_edk2_blobs ? ['bios-tables-test'] : []) + \
|
||||||
|
(config_all.has_key('CONFIG_TCG') and config_all_devices.has_key('CONFIG_TPM_TIS_SYSBUS') ? \
|
||||||
|
['tpm-tis-device-test', 'tpm-tis-device-swtpm-test'] : []) + \
|
||||||
|
(config_all_devices.has_key('CONFIG_XLNX_ZYNQMP_ARM') ? ['xlnx-can-test', 'fuzz-xlnx-dp-test'] : []) + \
|
||||||
|
@@ -222,8 +217,7 @@
|
||||||
|
config_all_devices.has_key('CONFIG_TPM_TIS_I2C') ? ['tpm-tis-i2c-test'] : []) + \
|
||||||
|
['arm-cpu-features',
|
||||||
|
'numa-test',
|
||||||
|
- 'boot-serial-test',
|
||||||
|
- 'migration-test']
|
||||||
|
+ 'boot-serial-test']
|
||||||
|
|
||||||
|
qtests_s390x = \
|
||||||
|
qtests_filter + \
|
||||||
|
@@ -301,7 +295,6 @@
|
||||||
|
endif
|
||||||
|
|
||||||
|
qtests = {
|
||||||
|
- 'bios-tables-test': [io, 'boot-sector.c', 'acpi-utils.c', 'tpm-emu.c'],
|
||||||
|
'cdrom-test': files('boot-sector.c'),
|
||||||
|
'dbus-vmstate-test': files('migration-helpers.c') + dbus_vmstate1,
|
||||||
|
'erst-test': files('erst-test.c'),
|
|
@ -15,7 +15,7 @@
|
||||||
;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
|
;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
|
||||||
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
;;; Copyright © 2020, 2021, 2022 Marius Bakke <marius@gnu.org>
|
;;; Copyright © 2020, 2021, 2022 Marius Bakke <marius@gnu.org>
|
||||||
;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
|
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
|
||||||
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
|
||||||
;;; Copyright © 2021, 2022 Pierre Langlois <pierre.langlois@gmx.com>
|
;;; Copyright © 2021, 2022 Pierre Langlois <pierre.langlois@gmx.com>
|
||||||
|
@ -164,16 +164,15 @@ (define (qemu-patch commit file-name sha256-bv)
|
||||||
(define-public qemu
|
(define-public qemu
|
||||||
(package
|
(package
|
||||||
(name "qemu")
|
(name "qemu")
|
||||||
(version "7.2.4")
|
(version "8.1.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://download.qemu.org/qemu-"
|
(uri (string-append "https://download.qemu.org/qemu-"
|
||||||
version ".tar.xz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0795l8xsy67fnh4mbdz40jm880iisd7q6d7ly6nfzpac3gjr8zyf"))
|
(base32 "0m8fbyr3xv6gi95ma0sksxfqmyj3pi4zcrgg5rvd8d73k08i033i"))
|
||||||
(patches (search-patches "qemu-build-info-manual.patch"
|
(patches (search-patches "qemu-disable-some-qtests-tests.patch"
|
||||||
"qemu-disable-aarch64-migration-test.patch"
|
|
||||||
"qemu-fix-agent-paths.patch"))
|
"qemu-fix-agent-paths.patch"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
|
@ -182,8 +181,6 @@ (define-public qemu
|
||||||
(with-directory-excursion "pc-bios"
|
(with-directory-excursion "pc-bios"
|
||||||
;; Delete firmwares provided by SeaBIOS.
|
;; Delete firmwares provided by SeaBIOS.
|
||||||
(for-each delete-file (find-files "." "^(bios|vgabios).*\\.bin$"))
|
(for-each delete-file (find-files "." "^(bios|vgabios).*\\.bin$"))
|
||||||
;; Delete SGABIOS.
|
|
||||||
(delete-file "sgabios.bin")
|
|
||||||
;; Delete ppc64 OpenBIOS. TODO: Remove sparc32 and sparc64 too
|
;; Delete ppc64 OpenBIOS. TODO: Remove sparc32 and sparc64 too
|
||||||
;; once they are supported in Guix.
|
;; once they are supported in Guix.
|
||||||
(delete-file "openbios-ppc")
|
(delete-file "openbios-ppc")
|
||||||
|
@ -194,12 +191,11 @@ (define-public qemu
|
||||||
(for-each delete-file (find-files "." "^(efi|pxe)-.*\\.rom$")))
|
(for-each delete-file (find-files "." "^(efi|pxe)-.*\\.rom$")))
|
||||||
;; Delete bundled code that we provide externally.
|
;; Delete bundled code that we provide externally.
|
||||||
(for-each delete-file-recursively
|
(for-each delete-file-recursively
|
||||||
'("dtc" "meson"
|
'("subprojects/dtc"
|
||||||
"roms/ipxe"
|
"roms/ipxe"
|
||||||
"roms/openbios"
|
"roms/openbios"
|
||||||
"roms/opensbi"
|
"roms/opensbi"
|
||||||
"roms/seabios"
|
"roms/seabios"))))))
|
||||||
"roms/sgabios"))))))
|
|
||||||
(outputs '("out" "static" "doc")) ;5.3 MiB of HTML docs
|
(outputs '("out" "static" "doc")) ;5.3 MiB of HTML docs
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
|
@ -210,7 +206,6 @@ (define-public qemu
|
||||||
(not (string=? "i686-linux" (%current-system))))
|
(not (string=? "i686-linux" (%current-system))))
|
||||||
#:configure-flags
|
#:configure-flags
|
||||||
#~(let ((gcc (search-input-file %build-inputs "/bin/gcc"))
|
#~(let ((gcc (search-input-file %build-inputs "/bin/gcc"))
|
||||||
(meson (search-input-file %build-inputs "bin/meson"))
|
|
||||||
(openbios (search-input-file %build-inputs
|
(openbios (search-input-file %build-inputs
|
||||||
"share/qemu/openbios-ppc"))
|
"share/qemu/openbios-ppc"))
|
||||||
(opensbi (search-input-file
|
(opensbi (search-input-file
|
||||||
|
@ -218,25 +213,20 @@ (define-public qemu
|
||||||
"share/qemu/opensbi-riscv64-generic-fw_dynamic.bin"))
|
"share/qemu/opensbi-riscv64-generic-fw_dynamic.bin"))
|
||||||
(seabios (search-input-file %build-inputs
|
(seabios (search-input-file %build-inputs
|
||||||
"share/qemu/bios.bin"))
|
"share/qemu/bios.bin"))
|
||||||
(sgabios (search-input-file %build-inputs
|
|
||||||
"/share/qemu/sgabios.bin"))
|
|
||||||
(ipxe (search-input-file %build-inputs
|
(ipxe (search-input-file %build-inputs
|
||||||
"share/qemu/pxe-virtio.rom"))
|
"share/qemu/pxe-virtio.rom"))
|
||||||
(out #$output))
|
(out #$output))
|
||||||
(list (string-append "--cc=" gcc)
|
(list (string-append "--cc=" gcc)
|
||||||
;; Some architectures insist on using HOST_CC.
|
;; Some architectures insist on using HOST_CC.
|
||||||
(string-append "--host-cc=" gcc)
|
(string-append "--host-cc=" gcc)
|
||||||
(string-append "--meson=" meson)
|
|
||||||
(string-append "--prefix=" out)
|
(string-append "--prefix=" out)
|
||||||
|
|
||||||
"--sysconfdir=/etc"
|
"--sysconfdir=/etc"
|
||||||
"--enable-fdt=system"
|
"--enable-fdt=system"
|
||||||
(string-append "--firmwarepath=" out "/share/qemu:"
|
(string-append "--firmwarepath=" out "/share/qemu:"
|
||||||
(dirname seabios) ":"
|
(dirname seabios) ":"
|
||||||
(dirname ipxe) ":"
|
(dirname ipxe) ":"
|
||||||
(dirname openbios) ":"
|
(dirname openbios) ":"
|
||||||
(dirname opensbi) ":"
|
(dirname opensbi))
|
||||||
(dirname sgabios))
|
|
||||||
(string-append "--smbd=" out "/libexec/samba-wrapper")
|
(string-append "--smbd=" out "/libexec/samba-wrapper")
|
||||||
"--disable-debug-info" ;for space considerations
|
"--disable-debug-info" ;for space considerations
|
||||||
;; The binaries need to be linked against -lrt.
|
;; The binaries need to be linked against -lrt.
|
||||||
|
@ -257,7 +247,6 @@ (define-public qemu
|
||||||
(let* ((seabios (dirname (search-input-file
|
(let* ((seabios (dirname (search-input-file
|
||||||
inputs "share/qemu/bios.bin")))
|
inputs "share/qemu/bios.bin")))
|
||||||
(seabios-firmwares (find-files seabios "\\.bin$"))
|
(seabios-firmwares (find-files seabios "\\.bin$"))
|
||||||
(sgabios (search-input-file inputs "share/qemu/sgabios.bin"))
|
|
||||||
(ipxe (dirname (search-input-file
|
(ipxe (dirname (search-input-file
|
||||||
inputs "share/qemu/pxe-virtio.rom")))
|
inputs "share/qemu/pxe-virtio.rom")))
|
||||||
(ipxe-firmwares (find-files ipxe "\\.rom$"))
|
(ipxe-firmwares (find-files ipxe "\\.rom$"))
|
||||||
|
@ -282,7 +271,7 @@ (define-public qemu
|
||||||
(for-each (lambda (file)
|
(for-each (lambda (file)
|
||||||
(symlink file (basename file)))
|
(symlink file (basename file)))
|
||||||
(append seabios-firmwares ipxe-firmwares
|
(append seabios-firmwares ipxe-firmwares
|
||||||
(list openbios opensbi-riscv64 sgabios))))
|
(list openbios opensbi-riscv64))))
|
||||||
(for-each (lambda (file)
|
(for-each (lambda (file)
|
||||||
(format allowed-differences-whitelist
|
(format allowed-differences-whitelist
|
||||||
"\"~a\",~%" file))
|
"\"~a\",~%" file))
|
||||||
|
@ -405,8 +394,7 @@ (define-public qemu
|
||||||
(for-each delete-file
|
(for-each delete-file
|
||||||
(append
|
(append
|
||||||
'("openbios-ppc"
|
'("openbios-ppc"
|
||||||
"opensbi-riscv64-generic-fw_dynamic.bin"
|
"opensbi-riscv64-generic-fw_dynamic.bin")
|
||||||
"sgabios.bin")
|
|
||||||
(find-files "." "^(vga)?bios(-[a-z0-9-]+)?\\.bin$")
|
(find-files "." "^(vga)?bios(-[a-z0-9-]+)?\\.bin$")
|
||||||
(find-files "." "^(efi|pxe)-.*\\.rom$"))))))
|
(find-files "." "^(efi|pxe)-.*\\.rom$"))))))
|
||||||
;; Create a wrapper for Samba. This allows QEMU to use Samba without
|
;; Create a wrapper for Samba. This allows QEMU to use Samba without
|
||||||
|
@ -457,7 +445,6 @@ (define-public qemu
|
||||||
pulseaudio
|
pulseaudio
|
||||||
sdl2
|
sdl2
|
||||||
seabios-qemu
|
seabios-qemu
|
||||||
sgabios
|
|
||||||
spice
|
spice
|
||||||
usbredir
|
usbredir
|
||||||
util-linux
|
util-linux
|
||||||
|
@ -512,8 +499,7 @@ (define-public qemu
|
||||||
|
|
||||||
(define-public qemu-minimal
|
(define-public qemu-minimal
|
||||||
;; QEMU without GUI support, only supporting the host's architecture
|
;; QEMU without GUI support, only supporting the host's architecture
|
||||||
(package
|
(package/inherit qemu
|
||||||
(inherit qemu)
|
|
||||||
(name "qemu-minimal")
|
(name "qemu-minimal")
|
||||||
(outputs '("out" "doc"))
|
(outputs '("out" "doc"))
|
||||||
(synopsis
|
(synopsis
|
||||||
|
@ -556,7 +542,14 @@ (define-public qemu-minimal
|
||||||
#~(modify-phases #$phases
|
#~(modify-phases #$phases
|
||||||
(delete 'configure-user-static)
|
(delete 'configure-user-static)
|
||||||
(delete 'build-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.
|
;; Remove dependencies on optional libraries, notably GUI libraries.
|
||||||
(native-inputs (filter (lambda (input)
|
(native-inputs (filter (lambda (input)
|
||||||
|
|
Loading…
Reference in a new issue