GDBVERSION ?= "13.%"
GLIBCVERSION ?= "2.38%"
LINUXLIBCVERSION ?= "6.4%"
-QEMUVERSION ?= "8.0%"
+QEMUVERSION ?= "8.1%"
GOVERSION ?= "1.20%"
LLVMVERSION ?= "16.%"
RUSTVERSION ?= "1.70%"
RDEPENDS:${PN}-ptest = "bash"
require qemu-targets.inc
-inherit pkgconfig ptest update-rc.d systemd
+# https://gitlab.com/qemu-project/qemu/-/commit/81e2b198a8cb4ee5fdf108bd438f44b193ee3a36 means
+# we need a full python3-native setup
+inherit pkgconfig ptest update-rc.d systemd python3native
LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
file://COPYING.LIB;endline=24;md5=8c5efda6cf1e1b03dcfd0e6c0d271c7f"
file://0009-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch \
file://0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch \
file://0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch \
- file://0001-tracetool-use-relative-paths-for-line-preprocessor-d.patch \
- file://0001-CVE-2023-40360-hw-nvme-fix-null-pointer-access-in-di.patch \
+ file://fixedmeson.patch \
file://qemu-guest-agent.init \
file://qemu-guest-agent.udev \
"
UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
-SRC_URI[sha256sum] = "81c817dda38af958be5bef1a6cf55b658bb2d3fb87c1e6a571de6b7b2c44516c"
+SRC_URI[sha256sum] = "710c101198e334d4762eef65f649bc43fa8a5dd75303554b8acfec3eb25f0e55"
SRC_URI:append:class-target = " file://cross.patch"
SRC_URI:append:class-nativesdk = " file://cross.patch"
--disable-werror \
--extra-cflags='${CFLAGS}' \
--extra-ldflags='${LDFLAGS}' \
- --with-git=/bin/false \
- --with-git-submodules=ignore \
- --meson=meson \
+ --disable-download \
+ --disable-docs \
${PACKAGECONFIG_CONFARGS} \
"
install -m 0644 ${S}/contrib/systemd/qemu-guest-agent.service ${D}${systemd_unitdir}/system
sed -i -e 's,-/usr/bin/,-${bindir}/,g' ${D}${systemd_unitdir}/system/qemu-guest-agent.service
fi
+ # ELF binary /usr/share/qemu/s390-netboot.img has relocations in .text
+ rm ${D}${datadir}/qemu/s390-netboot.img -f
+ # ELF binary /usr/share/qemu/s390-ccw.img has relocations in .text [textrel]
+ rm ${D}${datadir}/qemu/s390-ccw.img -f
}
# The following fragment will create a wrapper for qemu-mips user emulation
+++ /dev/null
-From 348ea441db84a211d4fca7ef5544b5cd06a8a872 Mon Sep 17 00:00:00 2001
-From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
-Date: Tue, 4 Apr 2023 15:26:07 +0200
-Subject: [PATCH] tracetool: use relative paths for '#line' preprocessor
- directives
-
-The event filename is an absolute path. Convert it to a relative path when
-writing '#line' directives, to preserve reproducibility of the generated
-output when different base paths are used.
-
-Upstream-Status: Accepted [https://gitlab.com/qemu-project/qemu/-/commit/9d672e290475001fcecdcc9dc79ad088ff89d17f]
-
----
- scripts/tracetool/backend/ftrace.py | 4 +++-
- scripts/tracetool/backend/log.py | 4 +++-
- scripts/tracetool/backend/syslog.py | 4 +++-
- 3 files changed, 9 insertions(+), 3 deletions(-)
-
-Index: qemu-8.0.0/scripts/tracetool/backend/ftrace.py
-===================================================================
---- qemu-8.0.0.orig/scripts/tracetool/backend/ftrace.py
-+++ qemu-8.0.0/scripts/tracetool/backend/ftrace.py
-@@ -12,6 +12,8 @@ __maintainer__ = "Stefan Hajnoczi"
- __email__ = "stefanha@redhat.com"
-
-
-+import os.path
-+
- from tracetool import out
-
-
-@@ -45,7 +47,7 @@ def generate_h(event, group):
- args=event.args,
- event_id="TRACE_" + event.name.upper(),
- event_lineno=event.lineno,
-- event_filename=event.filename,
-+ event_filename=os.path.relpath(event.filename),
- fmt=event.fmt.rstrip("\n"),
- argnames=argnames)
-
-Index: qemu-8.0.0/scripts/tracetool/backend/log.py
-===================================================================
---- qemu-8.0.0.orig/scripts/tracetool/backend/log.py
-+++ qemu-8.0.0/scripts/tracetool/backend/log.py
-@@ -12,6 +12,8 @@ __maintainer__ = "Stefan Hajnoczi"
- __email__ = "stefanha@redhat.com"
-
-
-+import os.path
-+
- from tracetool import out
-
-
-@@ -53,7 +55,7 @@ def generate_h(event, group):
- ' }',
- cond=cond,
- event_lineno=event.lineno,
-- event_filename=event.filename,
-+ event_filename=os.path.relpath(event.filename),
- name=event.name,
- fmt=event.fmt.rstrip("\n"),
- argnames=argnames)
-Index: qemu-8.0.0/scripts/tracetool/backend/syslog.py
-===================================================================
---- qemu-8.0.0.orig/scripts/tracetool/backend/syslog.py
-+++ qemu-8.0.0/scripts/tracetool/backend/syslog.py
-@@ -12,6 +12,8 @@ __maintainer__ = "Stefan Hajnoczi"
- __email__ = "stefanha@redhat.com"
-
-
-+import os.path
-+
- from tracetool import out
-
-
-@@ -41,7 +43,7 @@ def generate_h(event, group):
- ' }',
- cond=cond,
- event_lineno=event.lineno,
-- event_filename=event.filename,
-+ event_filename=os.path.relpath(event.filename),
- name=event.name,
- fmt=event.fmt.rstrip("\n"),
- argnames=argnames)
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-Index: qemu-8.0.0/meson.build
+Index: qemu-8.1.0/meson.build
===================================================================
---- qemu-8.0.0.orig/meson.build
-+++ qemu-8.0.0/meson.build
-@@ -1213,7 +1213,7 @@ endif
+--- qemu-8.1.0.orig/meson.build
++++ qemu-8.1.0/meson.build
+@@ -1481,7 +1481,7 @@ endif
if not gnutls_crypto.found()
if (not get_option('gcrypt').auto() or have_system) and not get_option('nettle').enabled()
gcrypt = dependency('libgcrypt', version: '>=1.8',
- method: 'config-tool',
+ method: 'pkg-config',
- required: get_option('gcrypt'),
- kwargs: static_kwargs)
+ required: get_option('gcrypt'))
# Debian has removed -lgpg-error from libgcrypt-config
+ # as it "spreads unnecessary dependencies" which in
--- /dev/null
+Upstream-Status: Inappropriate [workaround, would need a real fix for upstream]
+
+Index: qemu-8.1.0/configure
+===================================================================
+--- qemu-8.1.0.orig/configure
++++ qemu-8.1.0/configure
+@@ -1032,12 +1032,7 @@ then
+ exit 1
+ fi
+
+-# At this point, we expect Meson to be installed and available.
+-# We expect mkvenv or pip to have created pyvenv/bin/meson for us.
+-# We ignore PATH completely here: we want to use the venv's Meson
+-# *exclusively*.
+-
+-meson="$(cd pyvenv/bin; pwd)/meson"
++meson=`which meson`
+
+ # Conditionally ensure Sphinx is installed.
+