all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Leo Famulari <leo@famulari.name>
To: 45014@debbugs.gnu.org
Subject: [bug#45014] QEMU 5.2.0 update - functions properly but still work in progress
Date: Wed, 2 Dec 2020 13:23:55 -0500	[thread overview]
Message-ID: <X8fbu7yAySPyKlv0@jasmine.lan> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 1696 bytes --]

Here is a patch that updates QEMU to 5.2.0-rc4.

The big change here is that the build system has changed to use Meson
and Ninja "under the hood", although this release still uses
`./configure && make` in a superficial way.

With this patch, the qemu and qemu-minimal packages build and can boot
Guix VMs created with the `guix system` commands.

There are still two open tasks that require assistance:

1) The patch that makes Sphinx build an info manual will need to be
adapted to the meson build system. Ideally, this would be submitted
upstream.

2) The ./configure step is considered "stale" in the build phase and
thus gets run twice. You can add "--trace" to #:make-flags to trace the
Makefile and try to understand what's wrong (shown below). I'm no Make
expert but, AFAICT, there are some PHONY targets that depend on the
output of the configure step, config-host.mak, so it may be an upstream
bug. But I might be misunderstanding it. I asked on the QEMU IRC but
didn't get a useful answer.

------
starting phase `build'
GNUmakefile:10: update target 'all' due to: force
echo 'changing dir to build for make ""...'
changing dir to build for make ""...
make -C build -f Makefile 
make[1]: Entering directory '/tmp/guix-build-qemu-minimal-5.2.0-rc4.drv-0/qemu-5.2.0-rc4/build'
Makefile:109: update target 'config-host.mak' due to: /tmp/guix-build-qemu-minimal-5.2.0-rc4.drv-0/qemu-5.2.0-rc4/pc-bios
echo config-host.mak is out-of-date, running configure
config-host.mak is out-of-date, running configure
if test -f meson-private/coredata.dat; then \
  ./config.status --skip-meson; \
else \
  ./config.status && touch build.ninja.stamp; \
fi
------

[-- Attachment #1.2: 0001-WIP-QEMU-Update-to-5.2.0-rc4.patch --]
[-- Type: text/plain, Size: 5363 bytes --]

From 37e261512f5b3a3e7544c31d2b001d71c547d08c Mon Sep 17 00:00:00 2001
From: Leo Famulari <leo@famulari.name>
Date: Sat, 28 Nov 2020 00:33:13 -0500
Subject: [PATCH] WIP: QEMU: Update to 5.2.0-rc4.

* gnu/packages/virtualization.scm (qemu): Update to 5.2.0-rc4.
[source]: TODO Update patch building the info manual.
[arguments]: Adjust the 'disable-unusable-tests' for the new Meson build
system. Generalize the 'patch-/bin/sh-references' into a 'patch-paths' phase,
and move an instance of path patching into it from the 'configure' phase.
[native-inputs]: Add ninja.
* gnu/packages/patches/qemu-build-info-manual.patch: Adjust to 5.2.0-rc4.
---
 gnu/packages/virtualization.scm | 34 +++++++++++++++------------------
 1 file changed, 15 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 466e9d1ac5..e2b2508efa 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -80,6 +80,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
+  #:use-module (gnu packages ninja)
   #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages perl)
@@ -132,15 +133,16 @@
 (define-public qemu
   (package
     (name "qemu")
-    (version "5.1.0")
+    (version "5.2.0-rc4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.qemu.org/qemu-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1rd41wwlvp0vpialjp2czs6i3lsc338xc72l3zkbb7ixjfslw5y9"))
-              (patches (search-patches "qemu-build-info-manual.patch"))))
+                "10xsnw9sscknb6abd4h45k6gjzhqpdrvk9h8djbh7y1vh1zg76i9"))
+;              (patches (search-patches "qemu-build-info-manual.patch"))
+))
     (outputs '("out" "doc"))            ;4.7 MiB of HTML docs
     (build-system gnu-build-system)
     (arguments
@@ -188,30 +190,28 @@
                 (string-append match "9")))))
          (add-after 'unpack 'disable-unusable-tests
            (lambda _
-             (substitute* "tests/Makefile.include"
+             (substitute* "tests/meson.build"
                ;; Comment out the test-qga test, which needs /sys and
                ;; fails within the build environment.
-               (("check-unit-.* tests/test-qga" all)
+               (("tests.*test-qga.*$" all)
                 (string-append "# " all))
                ;; Comment out the test-char test, which needs networking and
                ;; fails within the build environment.
-               (("check-unit-.* tests/test-char" all)
-                (string-append "# " all)))
-             (substitute* "tests/qtest/Makefile.include"
-               ;; Disable the following test, which triggers a crash on some
-               ;; x86 CPUs (see https://issues.guix.info/43048 and
-               ;; https://bugs.launchpad.net/qemu/+bug/1896263).
-               (("check-qtest-i386-y \\+= bios-tables-test" all)
+               (("'test-char':.*$" all)
                 (string-append "# " all)))
              #t))
-         (add-after 'patch-source-shebangs 'patch-/bin/sh-references
+         (add-after 'patch-source-shebangs 'patch-embedded-shebangs
            (lambda _
              ;; Ensure the executables created by these source files reference
              ;; /bin/sh from the store so they work inside the build container.
              (substitute* '("block/cloop.c" "migration/exec.c"
                             "net/tap.c" "tests/qtest/libqtest.c")
                (("/bin/sh") (which "sh")))
+             (substitute* "tests/qemu-iotests/check"
+               (("#!/usr/bin/env python3")
+                (string-append "#!" (which "python3"))))
              #t))
+         ;; XXX ./configure is being re-run at beginning of build phase...
          (replace 'configure
            (lambda* (#:key inputs outputs (configure-flags '())
                      #:allow-other-keys)
@@ -220,14 +220,9 @@
              (let ((out (assoc-ref outputs "out")))
                (setenv "SHELL" (which "bash"))
 
-               ;; While we're at it, patch for tests.
-               (substitute* "tests/qemu-iotests/check"
-                 (("#!/usr/bin/env python3")
-                  (string-append "#!" (which "python3"))))
-
                ;; Ensure config.status gets the correct shebang off the bat.
                ;; The build system gets confused if we change it later and
-               ;; attempts to re-run the whole configury, and fails.
+               ;; attempts to re-run the whole configuration, and fails.
                (substitute* "configure"
                  (("#!/bin/sh")
                   (string-append "#!" (which "sh"))))
@@ -302,6 +297,7 @@ exec smbd $@")))
                      ("pkg-config" ,pkg-config)
                      ("python-wrapper" ,python-wrapper)
                      ("python-sphinx" ,python-sphinx)
+                     ("ninja" ,ninja)
                      ("texinfo" ,texinfo)))
     (home-page "https://www.qemu.org")
     (synopsis "Machine emulator and virtualizer")
-- 
2.29.2


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

             reply	other threads:[~2020-12-02 18:25 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-02 18:23 Leo Famulari [this message]
2021-02-27  4:08 ` [bug#45014] QEMU 5.2.0 update - functions properly but still work in progress Leo Famulari

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=X8fbu7yAySPyKlv0@jasmine.lan \
    --to=leo@famulari.name \
    --cc=45014@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.