about summary refs log tree commit diff
path: root/pkgs/applications/virtualization/qemu
diff options
context:
space:
mode:
authorIzorkin <Izorkin@gmail.com>2018-08-10 21:59:53 +0300
committerTuomas Tynkkynen <tuomas.tynkkynen@iki.fi>2018-08-15 11:17:44 +0300
commite2c98528e93594512261c18f46474bcec1663581 (patch)
tree083cea9afd1cd03521f45425a39647c6c9556700 /pkgs/applications/virtualization/qemu
parent6e3d0efdc48d3388dc467d2bdd5d58706d00aa86 (diff)
downloadnixlib-e2c98528e93594512261c18f46474bcec1663581.tar
nixlib-e2c98528e93594512261c18f46474bcec1663581.tar.gz
nixlib-e2c98528e93594512261c18f46474bcec1663581.tar.bz2
nixlib-e2c98528e93594512261c18f46474bcec1663581.tar.lz
nixlib-e2c98528e93594512261c18f46474bcec1663581.tar.xz
nixlib-e2c98528e93594512261c18f46474bcec1663581.tar.zst
nixlib-e2c98528e93594512261c18f46474bcec1663581.zip
qemu: add path to bin utilites
Diffstat (limited to 'pkgs/applications/virtualization/qemu')
-rw-r--r--pkgs/applications/virtualization/qemu/default.nix6
-rw-r--r--pkgs/applications/virtualization/qemu/fix-qemu-ga.patch22
2 files changed, 26 insertions, 2 deletions
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index 742c2fb03f7c..aae1e7e6b691 100644
--- a/pkgs/applications/virtualization/qemu/default.nix
+++ b/pkgs/applications/virtualization/qemu/default.nix
@@ -71,8 +71,10 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "ga" ];
 
-  patches = [ ./no-etc-install.patch ]
-    ++ optional nixosTestRunner ./force-uid0-on-9p.patch
+  patches = [
+    ./no-etc-install.patch
+    ./fix-qemu-ga.patch
+  ] ++ optional nixosTestRunner ./force-uid0-on-9p.patch
     ++ optional pulseSupport ./fix-hda-recording.patch
     ++ optionals stdenv.hostPlatform.isMusl [
     (fetchpatch {
diff --git a/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch b/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch
new file mode 100644
index 000000000000..c2f051e2b944
--- /dev/null
+++ b/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch
@@ -0,0 +1,22 @@
+diff --git a/qga/commands-posix.c b/qga/commands-posix.c
+index 0dc219d..9d020d3 100644
+--- a/qga/commands-posix.c
++++ b/qga/commands-posix.c
+@@ -102,6 +102,8 @@ void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp)
+         reopen_fd_to_null(1);
+         reopen_fd_to_null(2);
+
++        execle("/run/current-system/sw/bin/shutdown", "shutdown", "-h", shutdown_flag, "+0",
++               "hypervisor initiated shutdown", (char*)NULL, environ);
+         execle("/sbin/shutdown", "shutdown", "-h", shutdown_flag, "+0",
+                "hypervisor initiated shutdown", (char*)NULL, environ);
+         _exit(EXIT_FAILURE);
+@@ -189,6 +191,8 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp)
+
+         /* Use '/sbin/hwclock -w' to set RTC from the system time,
+          * or '/sbin/hwclock -s' to set the system time from RTC. */
++        execle("/run/current-system/sw/bin/hwclock", "hwclock", has_time ? "-w" : "-s",
++               NULL, environ);
+         execle("/sbin/hwclock", "hwclock", has_time ? "-w" : "-s",
+                NULL, environ);
+         _exit(EXIT_FAILURE);