bug#37209: [PATCH] gnu: libvirt: Don't wrap with PATH

2019-09-11 Thread 宋文武
iyzs...@member.fsf.org (宋文武) writes:

> Hello, this patch will make libvirt use
>   "/run/current-system/profile/bin/qemu-system-x86_64"
> in machine's definition, and it can use 'ovs-vsctl' in PATH:
>
>>From e463ef6952009a46c96981df0647cee414fb71a6 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= 
> Date: Wed, 28 Aug 2019 20:49:40 +0800
> Subject: [PATCH] gnu: libvirt: Don't wrap with PATH.
>

Pushed, well I should sent it ..





bug#37209: [PATCH] gnu: libvirt: Don't wrap with PATH

2019-08-28 Thread 宋文武
Hello, this patch will make libvirt use
  "/run/current-system/profile/bin/qemu-system-x86_64"
in machine's definition, and it can use 'ovs-vsctl' in PATH:

>From e463ef6952009a46c96981df0647cee414fb71a6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= 
Date: Wed, 28 Aug 2019 20:49:40 +0800
Subject: [PATCH] gnu: libvirt: Don't wrap with PATH.

This reverts commit 903e051a71467bc96a054c9b4ed89348fdae8977 to fix
.  The full path of the 'ip' command is already
embedded, and we want to search 'qemu' in PATH.

* gnu/packages/virtualization.scm (libvirt): Remove 'wrap-libvirtd phase.  Add
configure flags to run qemu as 'nobody:kvm'.
* gnu/services/virtualization.scm (libvirt-service-type): Add 'qemu' to the
system profile.
---
 gnu/packages/virtualization.scm | 17 +
 gnu/services/virtualization.scm |  6 --
 2 files changed, 9 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 26477714e4..f46c31df1f 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -401,7 +401,10 @@ manage system or application containers.")
 (build-system gnu-build-system)
 (arguments
  `(#:configure-flags
-   (list "--with-polkit"
+   (list "--with-qemu"
+ "--with-qemu-user=nobody"
+ "--with-qemu-group=kvm"
+ "--with-polkit"
  (string-append "--docdir=" (assoc-ref %outputs "out") "/share/doc/"
 ,name "-" ,version)
  "--sysconfdir=/etc"
@@ -431,23 +434,13 @@ manage system or application containers.")
  (apply invoke "make" "install"
 "sysconfdir=/tmp/etc"
 "localstatedir=/tmp/var"
-make-flags)))
- (add-after 'install 'wrap-libvirtd
-   (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
-   (wrap-program (string-append out "/sbin/libvirtd")
- `("PATH" = (,(string-append (assoc-ref inputs "iproute")
- "/sbin")
- ,(string-append (assoc-ref inputs "qemu")
- "/bin"
-   #t))
+make-flags))
 (inputs
  `(("libxml2" ,libxml2)
("eudev" ,eudev)
("libpciaccess" ,libpciaccess)
("gnutls" ,gnutls)
("dbus" ,dbus)
-   ("qemu" ,qemu)
("libpcap" ,libpcap)
("libnl" ,libnl)
("libuuid" ,util-linux)
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index 705ed84d06..03aedd326c 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -442,8 +442,10 @@ potential infinite waits blocking libvirt."))
   (service-extension polkit-service-type
  (compose list libvirt-configuration-libvirt))
   (service-extension profile-service-type
- (compose list
-  libvirt-configuration-libvirt))
+ (lambda (config)
+   (list
+(libvirt-configuration-libvirt config)
+qemu)))
   (service-extension activation-service-type
  %libvirt-activation)
   (service-extension shepherd-root-service-type
-- 
2.19.2