summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-08-30 14:05:22 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-09-05 23:30:02 -0400
commit2ee9abe835affc2846670165998a68333a7b916b (patch)
tree258d4d7fd893c3782462ab376c99368a6da973f5
parent73958f7f046f578124208015f17d6dc89cb785cf (diff)
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>
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/patches/qemu-disable-aarch64-migration-test.patch13
-rw-r--r--gnu/packages/patches/qemu-disable-some-qtests-tests.patch52
-rw-r--r--gnu/packages/virtualization.scm43
4 files changed, 71 insertions, 39 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 6eb84e676b6..6ccd27cba5b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1865,7 +1865,7 @@ dist_patch_DATA = \
1865 %D%/packages/patches/python-werkzeug-tests.patch \ 1865 %D%/packages/patches/python-werkzeug-tests.patch \
1866 %D%/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch \ 1866 %D%/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch \
1867 %D%/packages/patches/qemu-build-info-manual.patch \ 1867 %D%/packages/patches/qemu-build-info-manual.patch \
1868 %D%/packages/patches/qemu-disable-aarch64-migration-test.patch \ 1868 %D%/packages/patches/qemu-disable-some-qtests-tests.patch \
1869 %D%/packages/patches/qemu-glibc-2.27.patch \ 1869 %D%/packages/patches/qemu-glibc-2.27.patch \
1870 %D%/packages/patches/qemu-glibc-2.30.patch \ 1870 %D%/packages/patches/qemu-glibc-2.30.patch \
1871 %D%/packages/patches/qemu-fix-agent-paths.patch \ 1871 %D%/packages/patches/qemu-fix-agent-paths.patch \
diff --git a/gnu/packages/patches/qemu-disable-aarch64-migration-test.patch b/gnu/packages/patches/qemu-disable-aarch64-migration-test.patch
deleted file mode 100644
index bf60ed23bb9..00000000000
--- a/gnu/packages/patches/qemu-disable-aarch64-migration-test.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1Disable the qtest-aarch64/migration-test, which sometimes fail non-deterministically.
2See: https://gitlab.com/qemu-project/qemu/-/issues/1230.
3
4--- qemu-7.1.0/tests/qtest/meson.build.old 1969-12-31 19:00:01.000000000 -0500
5+++ qemu-7.1.0/tests/qtest/meson.build 2022-09-26 11:11:05.434209797 -0400
6@@ -219,7 +219,6 @@
7 ['arm-cpu-features',
8 'numa-test',
9 'boot-serial-test',
10- 'migration-test',
11 'bcm2835-dma-test']
12
13 qtests_s390x = \
diff --git a/gnu/packages/patches/qemu-disable-some-qtests-tests.patch b/gnu/packages/patches/qemu-disable-some-qtests-tests.patch
new file mode 100644
index 00000000000..f60698de8fe
--- /dev/null
+++ b/gnu/packages/patches/qemu-disable-some-qtests-tests.patch
@@ -0,0 +1,52 @@
1Disable the qtest-aarch64/migration-test, which sometimes fail
2non-deterministically (see:
3https://gitlab.com/qemu-project/qemu/-/issues/1230).
4
5Also disable the bios-tables-test, which may fail on older machines (see:
6https://gitlab.com/qemu-project/qemu/-/issues/1098).
7
8--- qemu-8.1.0/tests/qtest/meson.build.old 2023-08-30 11:48:27.871146249 -0400
9+++ qemu-8.1.0/tests/qtest/meson.build 2023-08-30 13:53:25.994084948 -0400
10@@ -1,6 +1,5 @@
11 slow_qtests = {
12 'ahci-test' : 60,
13- 'bios-tables-test' : 120,
14 'boot-serial-test' : 60,
15 'migration-test' : 150,
16 'npcm7xx_pwm-test': 150,
17@@ -81,9 +80,6 @@
18 config_all_devices.has_key('CONFIG_Q35') and \
19 config_all_devices.has_key('CONFIG_VIRTIO_PCI') and \
20 slirp.found() ? ['virtio-net-failover'] : []) + \
21- (unpack_edk2_blobs and \
22- config_all_devices.has_key('CONFIG_HPET') and \
23- config_all_devices.has_key('CONFIG_PARALLEL') ? ['bios-tables-test'] : []) + \
24 qtests_pci + \
25 qtests_cxl + \
26 ['fdc-test',
27@@ -212,7 +208,6 @@
28
29 # TODO: once aarch64 TCG is fixed on ARM 32 bit host, make bios-tables-test unconditional
30 qtests_aarch64 = \
31- (cpu != 'arm' and unpack_edk2_blobs ? ['bios-tables-test'] : []) + \
32 (config_all.has_key('CONFIG_TCG') and config_all_devices.has_key('CONFIG_TPM_TIS_SYSBUS') ? \
33 ['tpm-tis-device-test', 'tpm-tis-device-swtpm-test'] : []) + \
34 (config_all_devices.has_key('CONFIG_XLNX_ZYNQMP_ARM') ? ['xlnx-can-test', 'fuzz-xlnx-dp-test'] : []) + \
35@@ -222,8 +217,7 @@
36 config_all_devices.has_key('CONFIG_TPM_TIS_I2C') ? ['tpm-tis-i2c-test'] : []) + \
37 ['arm-cpu-features',
38 'numa-test',
39- 'boot-serial-test',
40- 'migration-test']
41+ 'boot-serial-test']
42
43 qtests_s390x = \
44 qtests_filter + \
45@@ -301,7 +295,6 @@
46 endif
47
48 qtests = {
49- 'bios-tables-test': [io, 'boot-sector.c', 'acpi-utils.c', 'tpm-emu.c'],
50 'cdrom-test': files('boot-sector.c'),
51 'dbus-vmstate-test': files('migration-helpers.c') + dbus_vmstate1,
52 'erst-test': files('erst-test.c'),
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 9952dd125ab..4ae0049269c 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -15,7 +15,7 @@
15;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re> 15;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
16;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> 16;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
17;;; Copyright © 2020, 2021, 2022 Marius Bakke <marius@gnu.org> 17;;; Copyright © 2020, 2021, 2022 Marius Bakke <marius@gnu.org>
18;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> 18;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
19;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> 19;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
20;;; Copyright © 2021 Leo Famulari <leo@famulari.name> 20;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
21;;; Copyright © 2021, 2022 Pierre Langlois <pierre.langlois@gmx.com> 21;;; Copyright © 2021, 2022 Pierre Langlois <pierre.langlois@gmx.com>
@@ -164,16 +164,15 @@
164(define-public qemu 164(define-public qemu
165 (package 165 (package
166 (name "qemu") 166 (name "qemu")
167 (version "7.2.4") 167 (version "8.1.0")
168 (source 168 (source
169 (origin 169 (origin
170 (method url-fetch) 170 (method url-fetch)
171 (uri (string-append "https://download.qemu.org/qemu-" 171 (uri (string-append "https://download.qemu.org/qemu-"
172 version ".tar.xz")) 172 version ".tar.xz"))
173 (sha256 173 (sha256
174 (base32 "0795l8xsy67fnh4mbdz40jm880iisd7q6d7ly6nfzpac3gjr8zyf")) 174 (base32 "0m8fbyr3xv6gi95ma0sksxfqmyj3pi4zcrgg5rvd8d73k08i033i"))
175 (patches (search-patches "qemu-build-info-manual.patch" 175 (patches (search-patches "qemu-disable-some-qtests-tests.patch"
176 "qemu-disable-aarch64-migration-test.patch"
177 "qemu-fix-agent-paths.patch")) 176 "qemu-fix-agent-paths.patch"))
178 (modules '((guix build utils))) 177 (modules '((guix build utils)))
179 (snippet 178 (snippet
@@ -182,8 +181,6 @@
182 (with-directory-excursion "pc-bios" 181 (with-directory-excursion "pc-bios"
183 ;; Delete firmwares provided by SeaBIOS. 182 ;; Delete firmwares provided by SeaBIOS.
184 (for-each delete-file (find-files "." "^(bios|vgabios).*\\.bin$")) 183 (for-each delete-file (find-files "." "^(bios|vgabios).*\\.bin$"))
185 ;; Delete SGABIOS.
186 (delete-file "sgabios.bin")
187 ;; Delete ppc64 OpenBIOS. TODO: Remove sparc32 and sparc64 too 184 ;; Delete ppc64 OpenBIOS. TODO: Remove sparc32 and sparc64 too
188 ;; once they are supported in Guix. 185 ;; once they are supported in Guix.
189 (delete-file "openbios-ppc") 186 (delete-file "openbios-ppc")
@@ -194,12 +191,11 @@
194 (for-each delete-file (find-files "." "^(efi|pxe)-.*\\.rom$"))) 191 (for-each delete-file (find-files "." "^(efi|pxe)-.*\\.rom$")))
195 ;; Delete bundled code that we provide externally. 192 ;; Delete bundled code that we provide externally.
196 (for-each delete-file-recursively 193 (for-each delete-file-recursively
197 '("dtc" "meson" 194 '("subprojects/dtc"
198 "roms/ipxe" 195 "roms/ipxe"
199 "roms/openbios" 196 "roms/openbios"
200 "roms/opensbi" 197 "roms/opensbi"
201 "roms/seabios" 198 "roms/seabios"))))))
202 "roms/sgabios"))))))
203 (outputs '("out" "static" "doc")) ;5.3 MiB of HTML docs 199 (outputs '("out" "static" "doc")) ;5.3 MiB of HTML docs
204 (build-system gnu-build-system) 200 (build-system gnu-build-system)
205 (arguments 201 (arguments
@@ -210,7 +206,6 @@
210 (not (string=? "i686-linux" (%current-system)))) 206 (not (string=? "i686-linux" (%current-system))))
211 #:configure-flags 207 #:configure-flags
212 #~(let ((gcc (search-input-file %build-inputs "/bin/gcc")) 208 #~(let ((gcc (search-input-file %build-inputs "/bin/gcc"))
213 (meson (search-input-file %build-inputs "bin/meson"))
214 (openbios (search-input-file %build-inputs 209 (openbios (search-input-file %build-inputs
215 "share/qemu/openbios-ppc")) 210 "share/qemu/openbios-ppc"))
216 (opensbi (search-input-file 211 (opensbi (search-input-file
@@ -218,25 +213,20 @@
218 "share/qemu/opensbi-riscv64-generic-fw_dynamic.bin")) 213 "share/qemu/opensbi-riscv64-generic-fw_dynamic.bin"))
219 (seabios (search-input-file %build-inputs 214 (seabios (search-input-file %build-inputs
220 "share/qemu/bios.bin")) 215 "share/qemu/bios.bin"))
221 (sgabios (search-input-file %build-inputs
222 "/share/qemu/sgabios.bin"))
223 (ipxe (search-input-file %build-inputs 216 (ipxe (search-input-file %build-inputs
224 "share/qemu/pxe-virtio.rom")) 217 "share/qemu/pxe-virtio.rom"))
225 (out #$output)) 218 (out #$output))
226 (list (string-append "--cc=" gcc) 219 (list (string-append "--cc=" gcc)
227 ;; Some architectures insist on using HOST_CC. 220 ;; Some architectures insist on using HOST_CC.
228 (string-append "--host-cc=" gcc) 221 (string-append "--host-cc=" gcc)
229 (string-append "--meson=" meson)
230 (string-append "--prefix=" out) 222 (string-append "--prefix=" out)
231
232 "--sysconfdir=/etc" 223 "--sysconfdir=/etc"
233 "--enable-fdt=system" 224 "--enable-fdt=system"
234 (string-append "--firmwarepath=" out "/share/qemu:" 225 (string-append "--firmwarepath=" out "/share/qemu:"
235 (dirname seabios) ":" 226 (dirname seabios) ":"
236 (dirname ipxe) ":" 227 (dirname ipxe) ":"
237 (dirname openbios) ":" 228 (dirname openbios) ":"
238 (dirname opensbi) ":" 229 (dirname opensbi))
239 (dirname sgabios))
240 (string-append "--smbd=" out "/libexec/samba-wrapper") 230 (string-append "--smbd=" out "/libexec/samba-wrapper")
241 "--disable-debug-info" ;for space considerations 231 "--disable-debug-info" ;for space considerations
242 ;; The binaries need to be linked against -lrt. 232 ;; The binaries need to be linked against -lrt.
@@ -257,7 +247,6 @@
257 (let* ((seabios (dirname (search-input-file 247 (let* ((seabios (dirname (search-input-file
258 inputs "share/qemu/bios.bin"))) 248 inputs "share/qemu/bios.bin")))
259 (seabios-firmwares (find-files seabios "\\.bin$")) 249 (seabios-firmwares (find-files seabios "\\.bin$"))
260 (sgabios (search-input-file inputs "share/qemu/sgabios.bin"))
261 (ipxe (dirname (search-input-file 250 (ipxe (dirname (search-input-file
262 inputs "share/qemu/pxe-virtio.rom"))) 251 inputs "share/qemu/pxe-virtio.rom")))
263 (ipxe-firmwares (find-files ipxe "\\.rom$")) 252 (ipxe-firmwares (find-files ipxe "\\.rom$"))
@@ -282,7 +271,7 @@
282 (for-each (lambda (file) 271 (for-each (lambda (file)
283 (symlink file (basename file))) 272 (symlink file (basename file)))
284 (append seabios-firmwares ipxe-firmwares 273 (append seabios-firmwares ipxe-firmwares
285 (list openbios opensbi-riscv64 sgabios)))) 274 (list openbios opensbi-riscv64))))
286 (for-each (lambda (file) 275 (for-each (lambda (file)
287 (format allowed-differences-whitelist 276 (format allowed-differences-whitelist
288 "\"~a\",~%" file)) 277 "\"~a\",~%" file))
@@ -405,8 +394,7 @@
405 (for-each delete-file 394 (for-each delete-file
406 (append 395 (append
407 '("openbios-ppc" 396 '("openbios-ppc"
408 "opensbi-riscv64-generic-fw_dynamic.bin" 397 "opensbi-riscv64-generic-fw_dynamic.bin")
409 "sgabios.bin")
410 (find-files "." "^(vga)?bios(-[a-z0-9-]+)?\\.bin$") 398 (find-files "." "^(vga)?bios(-[a-z0-9-]+)?\\.bin$")
411 (find-files "." "^(efi|pxe)-.*\\.rom$")))))) 399 (find-files "." "^(efi|pxe)-.*\\.rom$"))))))
412 ;; Create a wrapper for Samba. This allows QEMU to use Samba without 400 ;; Create a wrapper for Samba. This allows QEMU to use Samba without
@@ -457,7 +445,6 @@ exec smbd $@")))
457 pulseaudio 445 pulseaudio
458 sdl2 446 sdl2
459 seabios-qemu 447 seabios-qemu
460 sgabios
461 spice 448 spice
462 usbredir 449 usbredir
463 util-linux 450 util-linux
@@ -512,8 +499,7 @@ server and embedded PowerPC, and S390 guests.")
512 499
513(define-public qemu-minimal 500(define-public qemu-minimal
514 ;; QEMU without GUI support, only supporting the host's architecture 501 ;; QEMU without GUI support, only supporting the host's architecture
515 (package 502 (package/inherit qemu
516 (inherit qemu)
517 (name "qemu-minimal") 503 (name "qemu-minimal")
518 (outputs '("out" "doc")) 504 (outputs '("out" "doc"))
519 (synopsis 505 (synopsis
@@ -556,7 +542,14 @@ server and embedded PowerPC, and S390 guests.")
556 #~(modify-phases #$phases 542 #~(modify-phases #$phases
557 (delete 'configure-user-static) 543 (delete 'configure-user-static)
558 (delete 'build-user-static) 544 (delete 'build-user-static)
559 (delete 'install-user-static))))) 545 (delete 'install-user-static)
546 (add-after 'disable-unusable-tests 'disable-extra-tests
547 (lambda _
548 ;; Interesting, the iothreads-commit-active test only fails in
549 ;; qemu-minimal, not the complete variant (see:
550 ;; https://gitlab.com/qemu-project/qemu/-/issues/1855).
551 (delete-file
552 "tests/qemu-iotests/tests/iothreads-commit-active")))))))
560 553
561 ;; Remove dependencies on optional libraries, notably GUI libraries. 554 ;; Remove dependencies on optional libraries, notably GUI libraries.
562 (native-inputs (filter (lambda (input) 555 (native-inputs (filter (lambda (input)