On Fri, Feb 02, 2024 at 18:59:44 -0000, tim(a)siosm.fr wrote:
Install a systemd sysusers config file for the qemu & kvm
user/groups.
We can not use the sysusers_create_compat macro in the RPM specfile to
create those users as we want to keep the specfile standalone and not
relying on additionnal files.
Update the specfile to make the commands closer to what is generated by
the current macro.
See:
https://src.fedoraproject.org/rpms/libvirt/pull-request/22
See:
https://gitlab.com/libvirt/libvirt/-/merge_requests/319
See:
https://docs.fedoraproject.org/en-US/packaging-guidelines/UsersAndGroups/
IMO we should also mention:
https://bugzilla.redhat.com/show_bug.cgi?id=2095429
Based on previous work by: Peter Krempa <pkrempa(a)redhat.com>
Signed-off-by: Timothée Ravier <tim(a)siosm.fr>
---
libvirt.spec.in | 21 +++++++++++++--------
src/qemu/libvirt-qemu.sysusers.conf | 4 ++++
src/qemu/meson.build | 7 +++++++
3 files changed, 24 insertions(+), 8 deletions(-)
create mode 100644 src/qemu/libvirt-qemu.sysusers.conf
I've tested that 'rpmbuild -tb libvirt*.tar.xz' works properly after
this patch.
Note that in the way you've posted this patch the authorship looks like:
commit 746e7b69bf57631ceb2be93e8a0b9db4b4b50e5f
Author: tim(a)siosm.fr <tim(a)siosm.fr>
Date: Fri Feb 2 18:59:44 2024 +0000
qemu: Add sysusers config file for qemu & kvm user/groups
Is this what you've wanted? Or should I update it using the spelling
from the sign off?
diff --git a/libvirt.spec.in b/libvirt.spec.in
index 8413e3c19a..a411ac6515 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
[...]
@@ -1834,16 +1835,19 @@ exit 0
%pre daemon-driver-qemu
%libvirt_sysconfig_pre virtqemud
%libvirt_systemd_unix_pre virtqemud
+
# We want soft static allocation of well-known ids, as disk images
-# are commonly shared across NFS mounts by id rather than name; see
-#
https://fedoraproject.org/wiki/Packaging:UsersAndGroups
-getent group kvm >/dev/null || groupadd -f -g 36 -r kvm
-getent group qemu >/dev/null || groupadd -f -g 107 -r qemu
-if ! getent passwd qemu >/dev/null; then
- if ! getent passwd 107 >/dev/null; then
- useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user"
qemu
+# are commonly shared across NFS mounts by id rather than name.
+# See
https://docs.fedoraproject.org/en-US/packaging-guidelines/UsersAndGroups/
+# We can not use the sysusers_create_compat macro here as we want to keep the
+# specfile standalone and not relying on additionnal files.
+getent group 'kvm' >/dev/null || groupadd -f -g '36' -r 'kvm'
|| :
+getent group 'qemu' >/dev/null || groupadd -f -g '107' -r
'qemu' || :
+if ! getent passwd 'qemu' >/dev/null; then
+ if ! getent passwd '107' >/dev/null; then
+ useradd -r -u '107' -g 'qemu' -G 'kvm' -d '/' -s
'/sbin/nologin' -c 'qemu user' 'qemu' || :
else
- useradd -r -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu
+ useradd -r -g 'qemu' -G 'kvm' -d '/' -s
'/sbin/nologin' -c 'qemu user' 'qemu' || :
fi
fi
exit 0
The quoting changes are okay and result in identical commands, but I'm
not that much sold on the discarding of errors (' || : ') which we
didn't do before. Why would we want to ignore errors here?
Other than that:
Reviewed-by: Peter Krempa <pkrempa(a)redhat.com>
You don't need to re-send but I want to know the reason for dropping the
errors first. I can update the patch before pushing.