include $(TOPDIR)/rules.mk
PKG_NAME:=qemu
-PKG_VERSION:=9.0.2
+PKG_VERSION:=9.1.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_HASH:=a8c3f596aece96da3b00cafb74baafa0d14515eafb8ed1ee3f7f5c2d0ebf02b6
+PKG_HASH:=816b7022a8ba7c2ac30e2e0cf973e826f6bcc8505339603212c5ede8e94d7834
PKG_SOURCE_URL:=https://download.qemu.org/
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=LICENSE tcg/LICENSE
CONFIGURE_ARGS += \
--enable-coroutine-pool \
--enable-crypto-afalg \
- --enable-live-block-migration \
--enable-membarrier \
--enable-replication \
--enable-lto \
--disable-numa \
--disable-opengl \
--disable-plugins \
- --disable-pvrdma \
--disable-qom-cast-debug \
--disable-rbd \
--disable-rdma \
--- a/qga/commands-posix.c
+++ b/qga/commands-posix.c
-@@ -79,6 +79,7 @@ static void ga_wait_child(pid_t pid, int
+@@ -217,6 +217,7 @@ out:
void qmp_guest_shutdown(const char *mode, Error **errp)
{
const char *shutdown_flag;
+ const char *fallback_cmd = NULL;
Error *local_err = NULL;
- pid_t pid;
- int status;
-@@ -100,10 +101,13 @@ void qmp_guest_shutdown(const char *mode
+
+ #ifdef CONFIG_SOLARIS
+@@ -236,10 +237,13 @@ void qmp_guest_shutdown(const char *mode
slog("guest-shutdown called, mode: %s", mode);
if (!mode || strcmp(mode, "powerdown") == 0) {
shutdown_flag = powerdown_flag;
} else {
error_setg(errp,
"mode is invalid (valid values are: halt|powerdown|reboot");
-@@ -128,6 +132,7 @@ void qmp_guest_shutdown(const char *mode
- execl("/sbin/shutdown", "shutdown", "-h", shutdown_flag, "+0",
- "hypervisor initiated shutdown", (char *)NULL);
- #endif
-+ execl(fallback_cmd, fallback_cmd, (char*)NULL);
- _exit(EXIT_FAILURE);
- } else if (pid < 0) {
- error_setg_errno(errp, errno, "failed to create child process");
+@@ -258,8 +262,12 @@ void qmp_guest_shutdown(const char *mode
+
+ ga_run_command(argv, NULL, "shutdown", &local_err);
+ if (local_err) {
+- error_propagate(errp, local_err);
+- return;
++ const char fallback_argv[] = {fallback_cmd, (char *) NULL};
++ ga_run_command(fallback_argv, NULL, fallback_cmd, &local_err);
++ if (local_err) {
++ error_propagate(errp, local_err);
++ return;
++ }
+ }
+
+ /* succeeded */
--- a/meson.build
+++ b/meson.build
-@@ -3576,10 +3576,6 @@ subdir('common-user')
+@@ -3630,10 +3630,6 @@ subdir('common-user')
subdir('bsd-user')
subdir('linux-user')
# accel modules
tcg_real_module_ss = ss.source_set()
tcg_real_module_ss.add_all(when: 'CONFIG_TCG_MODULAR', if_true: tcg_module_ss)
-@@ -4094,10 +4090,6 @@ subdir('scripts')
+@@ -4161,10 +4157,6 @@ subdir('scripts')
subdir('tools')
subdir('pc-bios')
subdir('docs')