]> xenbits.xensource.com Git - libvirt.git/commitdiff
meson: Check for os-release's ID_LIKE in addition to ID
authorAndrea Bolognani <abologna@redhat.com>
Wed, 26 Jan 2022 14:09:52 +0000 (15:09 +0100)
committerAndrea Bolognani <abologna@redhat.com>
Thu, 17 Mar 2022 13:46:14 +0000 (14:46 +0100)
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 <olaf@aepfle.de>
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
meson.build

index 317152fca3b9e8359d7c3c657fc50122e58d0b16..2c1d3bc64d2fdd2f3b17db399fb1f5e349a82009 100644 (file)
@@ -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'