From d36ba5fa710be40fba33d7f1738cee45a4a7d2b3 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Wed, 26 Jan 2022 15:09:52 +0100 Subject: [PATCH] meson: Check for os-release's ID_LIKE in addition to ID This makes it possible to reduce the number of cases we have to consider, because 'sles' declares itself to be like 'suse' and both 'rhel' and 'centos' declare themselves to be like 'fedora'. We have to move the check for Ubuntu before the one for Debian, however, because 'ubuntu' declares itself to be like 'debian' and it would end up with the wrong defaults otherwise. Suggested-by: Olaf Hering Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- meson.build | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/meson.build b/meson.build index 317152fca3..2c1d3bc64d 100644 --- a/meson.build +++ b/meson.build @@ -1671,24 +1671,23 @@ if not get_option('driver_qemu').disabled() qemu_user = 'root' qemu_group = 'wheel' else - os_release = run_command('grep', '^ID=', '/etc/os-release', check: false).stdout() + os_release = run_command('grep', '-E', '^ID(_LIKE)*=', '/etc/os-release', check: false).stdout() if os_release.contains('arch') qemu_user = 'nobody' qemu_group = 'nobody' - elif (os_release.contains('centos') or - os_release.contains('fedora') or + # RHEL and CentOS both have ID_LIKE=fedora, SLES has ID_LIKE=suse + elif (os_release.contains('fedora') or os_release.contains('gentoo') or - os_release.contains('rhel') or - os_release.contains('sles') or os_release.contains('suse')) qemu_user = 'qemu' qemu_group = 'qemu' - elif os_release.contains('debian') - qemu_user = 'libvirt-qemu' - qemu_group = 'libvirt-qemu' + # Ubuntu has ID_LIKE=debian so we need to handle it first elif os_release.contains('ubuntu') qemu_user = 'libvirt-qemu' qemu_group = 'kvm' + elif os_release.contains('debian') + qemu_user = 'libvirt-qemu' + qemu_group = 'libvirt-qemu' else qemu_user = 'root' qemu_group = 'root'