[libvirt PATCH] qemu: Use real defaults for user and group in qemu.conf

Andrea Bolognani posted 1 patch 2 years, 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20220328144820.359214-1-abologna@redhat.com
Test syntax-check passed
src/qemu/meson.build                 | 30 +++++++++++++++++++++++++---
src/qemu/{qemu.conf => qemu.conf.in} |  4 ++--
src/qemu/test_libvirtd_qemu.aug.in   |  4 ++--
3 files changed, 31 insertions(+), 7 deletions(-)
rename src/qemu/{qemu.conf => qemu.conf.in} (99%)
[libvirt PATCH] qemu: Use real defaults for user and group in qemu.conf
Posted by Andrea Bolognani 2 years, 1 month ago
The default values used by the library are determined at configure
time based on a number of factors, and we should reflect them in
the installed configuration file to make the comments it contains
more useful.

Resolves: https://gitlab.com/libvirt/libvirt/-/issues/263
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
---
 src/qemu/meson.build                 | 30 +++++++++++++++++++++++++---
 src/qemu/{qemu.conf => qemu.conf.in} |  4 ++--
 src/qemu/test_libvirtd_qemu.aug.in   |  4 ++--
 3 files changed, 31 insertions(+), 7 deletions(-)
 rename src/qemu/{qemu.conf => qemu.conf.in} (99%)

diff --git a/src/qemu/meson.build b/src/qemu/meson.build
index 39f0f615cc..96952cc52d 100644
--- a/src/qemu/meson.build
+++ b/src/qemu/meson.build
@@ -130,12 +130,36 @@ if conf.has('WITH_QEMU')
     ],
   }
 
-  virt_conf_files += files('qemu.conf')
+  qemu_user_group_conf = configuration_data({
+    'QEMU_USER': qemu_user,
+    'QEMU_GROUP': qemu_group,
+  })
+  qemu_conf = configure_file(
+    input: 'qemu.conf.in',
+    output: 'qemu.conf',
+    configuration: qemu_user_group_conf,
+  )
+
+  qemu_user_group_hack_conf = configuration_data({
+    'QEMU_USER': qemu_user,
+    'QEMU_GROUP': qemu_group,
+    # This hack is necessary because the output file is going to be
+    # used as input for another configure_file() call later, which
+    # will take care of substituting @CONFIG@ with useful data
+    'CONFIG': '@CONFIG@',
+  })
+  test_libvirtd_qemu_aug_tmp = configure_file(
+    input: 'test_libvirtd_qemu.aug.in',
+    output: 'test_libvirtd_qemu.aug.tmp',
+    configuration: qemu_user_group_hack_conf,
+  )
+
+  virt_conf_files += qemu_conf
   virt_aug_files += files('libvirtd_qemu.aug')
   virt_test_aug_files += {
     'name': 'test_libvirtd_qemu.aug',
-    'aug': files('test_libvirtd_qemu.aug.in'),
-    'conf': files('qemu.conf'),
+    'aug': test_libvirtd_qemu_aug_tmp,
+    'conf': qemu_conf,
     'test_name': 'libvirtd_qemu',
     'test_srcdir': meson.current_source_dir(),
     'test_builddir': meson.current_build_dir(),
diff --git a/src/qemu/qemu.conf b/src/qemu/qemu.conf.in
similarity index 99%
rename from src/qemu/qemu.conf
rename to src/qemu/qemu.conf.in
index 71fd125699..04b7740136 100644
--- a/src/qemu/qemu.conf
+++ b/src/qemu/qemu.conf.in
@@ -516,11 +516,11 @@
 #       user = "+0"     # Super user (uid=0)
 #       user = "100"    # A user named "100" or a user with uid=100
 #
-#user = "root"
+#user = "@QEMU_USER@"
 
 # The group for QEMU processes run by the system instance. It can be
 # specified in a similar way to user.
-#group = "root"
+#group = "@QEMU_GROUP@"
 
 # Whether libvirt should dynamically change file ownership
 # to match the configured user/group above. Defaults to 1.
diff --git a/src/qemu/test_libvirtd_qemu.aug.in b/src/qemu/test_libvirtd_qemu.aug.in
index 20a89ade32..757d21c33f 100644
--- a/src/qemu/test_libvirtd_qemu.aug.in
+++ b/src/qemu/test_libvirtd_qemu.aug.in
@@ -47,8 +47,8 @@ module Test_libvirtd_qemu =
 { "security_driver" = "selinux" }
 { "security_default_confined" = "1" }
 { "security_require_confined" = "1" }
-{ "user" = "root" }
-{ "group" = "root" }
+{ "user" = "@QEMU_USER@" }
+{ "group" = "@QEMU_GROUP@" }
 { "dynamic_ownership" = "1" }
 { "remember_owner" = "1" }
 { "cgroup_controllers"
-- 
2.35.1
Re: [libvirt PATCH] qemu: Use real defaults for user and group in qemu.conf
Posted by Michal Prívozník 2 years, 1 month ago
On 3/28/22 16:48, Andrea Bolognani wrote:
> The default values used by the library are determined at configure
> time based on a number of factors, and we should reflect them in
> the installed configuration file to make the comments it contains
> more useful.
> 
> Resolves: https://gitlab.com/libvirt/libvirt/-/issues/263
> Signed-off-by: Andrea Bolognani <abologna@redhat.com>
> ---
>  src/qemu/meson.build                 | 30 +++++++++++++++++++++++++---
>  src/qemu/{qemu.conf => qemu.conf.in} |  4 ++--
>  src/qemu/test_libvirtd_qemu.aug.in   |  4 ++--
>  3 files changed, 31 insertions(+), 7 deletions(-)
>  rename src/qemu/{qemu.conf => qemu.conf.in} (99%)

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>

Michal