diff options
| author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2023-08-30 14:05:22 -0400 |
|---|---|---|
| committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2023-09-05 23:30:02 -0400 |
| commit | 2ee9abe835affc2846670165998a68333a7b916b (patch) | |
| tree | 258d4d7fd893c3782462ab376c99368a6da973f5 | |
| parent | 73958f7f046f578124208015f17d6dc89cb785cf (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.mk | 2 | ||||
| -rw-r--r-- | gnu/packages/patches/qemu-disable-aarch64-migration-test.patch | 13 | ||||
| -rw-r--r-- | gnu/packages/patches/qemu-disable-some-qtests-tests.patch | 52 | ||||
| -rw-r--r-- | gnu/packages/virtualization.scm | 43 |
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 @@ | |||
| 1 | Disable the qtest-aarch64/migration-test, which sometimes fail non-deterministically. | ||
| 2 | See: 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 @@ | |||
| 1 | Disable the qtest-aarch64/migration-test, which sometimes fail | ||
| 2 | non-deterministically (see: | ||
| 3 | https://gitlab.com/qemu-project/qemu/-/issues/1230). | ||
| 4 | |||
| 5 | Also disable the bios-tables-test, which may fail on older machines (see: | ||
| 6 | https://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) |
