From fd00ec8f920fc3e2516cca578b4e75170da4dd76 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Wed, 1 May 2013 14:28:43 -0600 Subject: [PATCH] spec: proper soft static allocation of qemu uid https://bugzilla.redhat.com/show_bug.cgi?id=924501 tracks a problem that occurs if uid 107 is already in use at the time libvirt is first installed. In response that problem, Fedora packaging guidelines were recently updated. This fixes the spec file to comply with the new guidelines: https://fedoraproject.org/wiki/Packaging:UsersAndGroups * libvirt.spec.in (daemon): Follow updated Fedora guidelines. Signed-off-by: Eric Blake (cherry picked from commit a2584d58f6f7d941b960f996c8e26df8294b79b9) Conflicts: libvirt.spec.in - no backport of c8f79c9b %if reindents --- libvirt.spec.in | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/libvirt.spec.in b/libvirt.spec.in index b3893df53c..888779a480 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -697,6 +697,10 @@ Requires(postun): systemd-units %if %{with_numad} Requires: numad %endif +# libvirtd depends on 'messagebus' service +Requires: dbus +# For uid creation during pre +Requires(pre): shadow-utils %description daemon Server side daemon required to manage the virtualization capabilities @@ -1417,16 +1421,21 @@ make check %if %{with_libvirtd} %pre daemon -%if 0%{?fedora} >= 12 || 0%{?rhel} >= 6 -# Normally 'setup' adds this in /etc/passwd, but this is -# here for case of upgrades from earlier Fedora/RHEL. This -# UID/GID pair is reserved for qemu:qemu -getent group kvm >/dev/null || groupadd -g 36 -r kvm -getent group qemu >/dev/null || groupadd -g 107 -r qemu -getent passwd qemu >/dev/null || \ - useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ - -c "qemu user" qemu -%endif + %if 0%{?fedora} >= 12 || 0%{?rhel} >= 6 +# 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 + else + useradd -r -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu + fi +fi +exit 0 + %endif %post daemon -- GitLab