From nobody Sun May 19 02:26:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1648639623; cv=none; d=zohomail.com; s=zohoarc; b=fLF0alGJQECVbLy68nOczQY0SPX91Zcf+J4zEEgC9MG8XHjakyR/AKyUSZibqIEaQ3o5qyw5egS49hAwE+dLi7yXw2UQ1g2cShzkEVm5PBkvUAN6q+Us2mLwDHdMbbnWJTfTnVVYZ+ZFtot4wRJeAtCrF2lOBV6eBWBnzhpC77M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1648639623; h=Content-Type:Content-Transfer-Encoding:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=DA/QpHsOr1pscPZp05T5amLQsmi0ccN3uUwLXq0Z+rk=; b=mq83/sMo3kXKWzG2Y2W6Lcs9rF7UjApLh3sJOt13ZUwTjiTtyCy2cgfkEFmDeZnMuccaXc6AetY4x6bC29OShHJ2CnXWyZwlXMi6xBtQq3uH4Gg32YUWyCBlI/Np5gCp9xh25qp2rJDRTZokT1sgT60EjKWnVHGijNa3uFEUg9c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1648639623381425.0226519287603; Wed, 30 Mar 2022 04:27:03 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-412-Ion5kxuhMeGURtBF_wSL2w-1; Wed, 30 Mar 2022 07:26:58 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id CF1D8802809; Wed, 30 Mar 2022 11:26:48 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id E939856BC87; Wed, 30 Mar 2022 11:26:41 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 47D7819451F3; Wed, 30 Mar 2022 11:26:39 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 8368819466DF for ; Wed, 30 Mar 2022 11:26:38 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 587105690E8; Wed, 30 Mar 2022 11:26:38 +0000 (UTC) Received: from harajuku.usersys.redhat.com (unknown [10.40.195.165]) by smtp.corp.redhat.com (Postfix) with ESMTPS id AF38856D17E for ; Wed, 30 Mar 2022 11:26:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1648639622; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=DA/QpHsOr1pscPZp05T5amLQsmi0ccN3uUwLXq0Z+rk=; b=hSxIkikrsas0BSy+yrdUw6DgLXLF4OV2V5SRepUZgXnSHKnFkZYNjTddGum/5R/PEV0r2z LCluw9Zs5qhgIJt5MJ8UC6M7tG4iobXFWhsyBc8Rl8kpuBHa/pp5kuRLs0H1TAzjPTiLiF YWBf9JwRgiS74SsceRDpBGIkq+hzsGI= X-MC-Unique: Ion5kxuhMeGURtBF_wSL2w-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Andrea Bolognani To: libvir-list@redhat.com Subject: [libvirt PATCH] meson: Use dicts to initialize cfg_data objects Date: Wed, 30 Mar 2022 13:26:35 +0200 Message-Id: <20220330112635.911521-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1648639625962100001 Content-Type: text/plain; charset="utf-8"; x-default="true" Instead of creating an empty object and then setting keys one at a time, it is possible to pass a dict object to configuration_data(). This is nicer because it doesn't require repeating the name of the cfg_data object over and over. There is one exception: the 'conf' object, where we store values that are used directly by C code. In that case, using a dict object is not feasible for two reasons: first of all, replacing the set_quoted() calls would result in awkward code with a lot of calls to format(); moreover, since code that modifies it is sprinkled all over the place, refactoring it would probably make things more complicated rather than simpler. Signed-off-by: Andrea Bolognani --- build-aux/meson.build | 18 ++++----- docs/manpages/meson.build | 9 +++-- meson.build | 35 ++++++++++------- po/meson.build | 7 ++-- src/meson.build | 65 ++++++++++++++++++------------- src/remote/meson.build | 5 ++- src/security/apparmor/meson.build | 11 +++--- tools/bash-completion/meson.build | 5 ++- tools/meson.build | 21 +++++----- 9 files changed, 98 insertions(+), 78 deletions(-) diff --git a/build-aux/meson.build b/build-aux/meson.build index f4d0130e3b..bbfa27c4c6 100644 --- a/build-aux/meson.build +++ b/build-aux/meson.build @@ -1,14 +1,7 @@ -syntax_check_conf =3D configuration_data() -syntax_check_conf.set('top_srcdir', meson.source_root()) -syntax_check_conf.set('top_builddir', meson.build_root()) - flake8_path =3D '' if flake8_prog.found() flake8_path =3D flake8_prog.path() endif -syntax_check_conf.set('flake8_path', flake8_path) -syntax_check_conf.set('runutf8', ' '.join(runutf8)) -syntax_check_conf.set('PYTHON3', python3_prog.path()) =20 if host_machine.system() =3D=3D 'freebsd' or host_machine.system() =3D=3D = 'darwin' make_prog =3D find_program('gmake') @@ -33,8 +26,15 @@ else grep_prog =3D find_program('grep') endif =20 -syntax_check_conf.set('GREP', grep_prog.path()) -syntax_check_conf.set('SED', sed_prog.path()) +syntax_check_conf =3D configuration_data({ + 'top_srcdir': meson.source_root(), + 'top_builddir': meson.build_root(), + 'flake8_path': flake8_path, + 'runutf8': ' '.join(runutf8), + 'PYTHON3': python3_prog.path(), + 'GREP': grep_prog.path(), + 'SED': sed_prog.path(), +}) =20 configure_file( input: 'Makefile.in', diff --git a/docs/manpages/meson.build b/docs/manpages/meson.build index bad9b62a2e..d9fcb6b057 100644 --- a/docs/manpages/meson.build +++ b/docs/manpages/meson.build @@ -84,10 +84,11 @@ foreach name : keyname_list } endforeach =20 -docs_man_conf =3D configuration_data() -docs_man_conf.set('SYSCONFDIR', sysconfdir) -docs_man_conf.set('RUNSTATEDIR', runstatedir) -docs_man_conf.set('VERSION', meson.project_version()) +docs_man_conf =3D configuration_data({ + 'SYSCONFDIR': sysconfdir, + 'RUNSTATEDIR': runstatedir, + 'VERSION': meson.project_version(), +}) =20 foreach data : docs_man_files rst_in_file =3D '@0@.rst'.format(data['name']) diff --git a/meson.build b/meson.build index 27c21d1d67..50b996cbd4 100644 --- a/meson.build +++ b/meson.build @@ -2135,14 +2135,15 @@ pkgconfig_files =3D [ 'libvirt-admin.pc.in', ] =20 -pkgconfig_conf =3D configuration_data() -pkgconfig_conf.set('VERSION', meson.project_version()) -pkgconfig_conf.set('datadir', datadir) -pkgconfig_conf.set('datarootdir', datadir) -pkgconfig_conf.set('exec_prefix', prefix) -pkgconfig_conf.set('includedir', includedir) -pkgconfig_conf.set('libdir', libdir) -pkgconfig_conf.set('prefix', prefix) +pkgconfig_conf =3D configuration_data({ + 'VERSION': meson.project_version(), + 'datadir': datadir, + 'datarootdir': datadir, + 'exec_prefix': prefix, + 'includedir': includedir, + 'libdir': libdir, + 'prefix': prefix, +}) =20 pkgconfig_dir =3D libdir / 'pkgconfig' =20 @@ -2165,8 +2166,9 @@ if git 'mingw-libvirt.spec.in', ] =20 - spec_conf =3D configuration_data() - spec_conf.set('VERSION', meson.project_version()) + spec_conf =3D configuration_data({ + 'VERSION': meson.project_version(), + }) =20 foreach file : spec_files configure_file( @@ -2180,8 +2182,9 @@ if git env: runutf8, check: true) authors_file =3D 'AUTHORS.rst.in' =20 - authors_conf =3D configuration_data() - authors_conf.set('contributorslist', authors.stdout()) + authors_conf =3D configuration_data({ + 'contributorslist': authors.stdout(), + }) =20 configure_file( input: authors_file, @@ -2209,9 +2212,11 @@ configure_file(output: 'meson-config.h', configurati= on: conf) =20 =20 # generate run helper -run_conf =3D configuration_data() -run_conf.set('abs_builddir', meson.build_root()) -run_conf.set('abs_top_builddir', meson.build_root()) +run_conf =3D configuration_data({ + 'abs_builddir': meson.build_root(), + 'abs_top_builddir': meson.build_root(), +}) + configure_file( input: 'run.in', output: '@BASENAME@', diff --git a/po/meson.build b/po/meson.build index 69d8be726a..f4d95f97fe 100644 --- a/po/meson.build +++ b/po/meson.build @@ -1,8 +1,9 @@ i18n =3D import('i18n') =20 -potfiles_conf =3D configuration_data() -potfiles_conf.set('SRCDIR', '') -potfiles_conf.set('BUILDDIR', '') +potfiles_conf =3D configuration_data({ + 'SRCDIR': '', + 'BUILDDIR': '', +}) =20 potfiles =3D configure_file( input: 'POTFILES.in', diff --git a/src/meson.build b/src/meson.build index b2d951d36c..10165ba5ac 100644 --- a/src/meson.build +++ b/src/meson.build @@ -698,20 +698,23 @@ endforeach foreach data : virt_daemon_confs capitalize_args =3D [ '-c', 'print("@0@".capitalize())'.format(data['nam= e']) ] name_uc =3D run_command(python3_prog, capitalize_args, check: true, env:= runutf8).stdout().strip() - daemon_conf =3D configuration_data() - daemon_conf.set('runstatedir', runstatedir) - daemon_conf.set('sbindir', sbindir) - daemon_conf.set('sysconfdir', sysconfdir) - daemon_conf.set('DAEMON_NAME', data['name']) - daemon_conf.set('DAEMON_NAME_UC', name_uc) - # to silence meson warning about missing 'CONFIG' in the configuration_d= ata - daemon_conf.set('CONFIG', '@CONFIG@') + if conf.has('WITH_POLKIT') - daemon_conf.set('default_auth', 'polkit') + default_auth =3D 'polkit' else - daemon_conf.set('default_auth', 'none') + default_auth =3D 'none' endif =20 + daemon_conf =3D configuration_data({ + 'runstatedir': runstatedir, + 'sbindir': sbindir, + 'sysconfdir': sysconfdir, + 'DAEMON_NAME': data['name'], + 'DAEMON_NAME_UC': name_uc, + 'default_auth': default_auth, + # to silence meson warning about missing 'CONFIG' in the configuration= _data + 'CONFIG': '@CONFIG@', + }) =20 if data.get('with_ip', false) conf_in =3D libvirtd_conf_tmp @@ -783,20 +786,23 @@ if conf.has('WITH_LIBVIRTD') ) =20 foreach unit : virt_daemon_units - unit_conf =3D configuration_data() - unit_conf.set('runstatedir', runstatedir) - unit_conf.set('sbindir', sbindir) - unit_conf.set('sysconfdir', sysconfdir) - unit_conf.set('name', unit['name']) - unit_conf.set('service', unit['service']) - unit_conf.set('sockprefix', unit['sockprefix']) - unit_conf.set('deps', unit.get('deps', '')) if conf.has('WITH_POLKIT') - unit_conf.set('mode', '0666') + mode =3D '0666' else - unit_conf.set('mode', '0600') + mode =3D '0600' endif =20 + unit_conf =3D configuration_data({ + 'runstatedir': runstatedir, + 'sbindir': sbindir, + 'sysconfdir': sysconfdir, + 'name': unit['name'], + 'service': unit['service'], + 'sockprefix': unit['sockprefix'], + 'deps': unit.get('deps', ''), + 'mode': mode, + }) + configure_file( input: unit['service_in'], output: '@0@.service'.format(unit['service']), @@ -829,15 +835,17 @@ if conf.has('WITH_LIBVIRTD') # Generate openrc init files if init_script =3D=3D 'openrc' foreach init : openrc_init_files - init_conf =3D configuration_data() - init_conf.set('sbindir', sbindir) - init_conf.set('runstatedir', runstatedir) if conf.has('WITH_FIREWALLD') need_firewalld =3D 'need firewalld' else need_firewalld =3D '' endif - init_conf.set('NEED_FIREWALLD', need_firewalld) + + init_conf =3D configuration_data({ + 'sbindir': sbindir, + 'runstatedir': runstatedir, + 'NEED_FIREWALLD': need_firewalld, + }) =20 init_file =3D configure_file( input: init['in_file'], @@ -1010,10 +1018,11 @@ run_pkg_config_files =3D [ 'libvirt.pc.in', ] =20 -run_pkg_config_conf =3D configuration_data() -run_pkg_config_conf.set('VERSION', meson.project_version()) -run_pkg_config_conf.set('abs_top_builddir', meson.build_root()) -run_pkg_config_conf.set('abs_top_srcdir', meson.source_root()) +run_pkg_config_conf =3D configuration_data({ + 'VERSION': meson.project_version(), + 'abs_top_builddir': meson.build_root(), + 'abs_top_srcdir': meson.source_root(), +}) =20 foreach file : run_pkg_config_files configure_file( diff --git a/src/remote/meson.build b/src/remote/meson.build index b2aafe6320..eb4f7a0068 100644 --- a/src/remote/meson.build +++ b/src/remote/meson.build @@ -240,8 +240,9 @@ if conf.has('WITH_REMOTE') runstatedir / 'libvirt' / 'common', ] =20 - logrotate_conf =3D configuration_data() - logrotate_conf.set('localstatedir', localstatedir) + logrotate_conf =3D configuration_data({ + 'localstatedir': localstatedir, + }) =20 foreach name : logrotate_files log_file =3D configure_file( diff --git a/src/security/apparmor/meson.build b/src/security/apparmor/meso= n.build index 990f00b4f3..58b4024b85 100644 --- a/src/security/apparmor/meson.build +++ b/src/security/apparmor/meson.build @@ -5,11 +5,12 @@ apparmor_gen_profiles =3D [ 'usr.sbin.virtxend', ] =20 -apparmor_gen_profiles_conf =3D configuration_data() -apparmor_gen_profiles_conf.set('sysconfdir', sysconfdir) -apparmor_gen_profiles_conf.set('sbindir', sbindir) -apparmor_gen_profiles_conf.set('runstatedir', runstatedir) -apparmor_gen_profiles_conf.set('libexecdir', libexecdir) +apparmor_gen_profiles_conf =3D configuration_data({ + 'sysconfdir': sysconfdir, + 'sbindir': sbindir, + 'runstatedir': runstatedir, + 'libexecdir': libexecdir, +}) =20 apparmor_dir =3D sysconfdir / 'apparmor.d' =20 diff --git a/tools/bash-completion/meson.build b/tools/bash-completion/meso= n.build index deda7c4f46..2ce1c47602 100644 --- a/tools/bash-completion/meson.build +++ b/tools/bash-completion/meson.build @@ -4,8 +4,9 @@ completion_commands =3D [ ] =20 foreach command : completion_commands - completion_conf =3D configuration_data() - completion_conf.set('command', command) + completion_conf =3D configuration_data({ + 'command': command, + }) completion =3D configure_file( input: 'vsh.in', output: command, diff --git a/tools/meson.build b/tools/meson.build index ac714e6425..bb28a904dc 100644 --- a/tools/meson.build +++ b/tools/meson.build @@ -231,16 +231,17 @@ if conf.has('WITH_REMOTE') ) endif =20 -tools_conf =3D configuration_data() -tools_conf.set('PACKAGE', meson.project_name()) -tools_conf.set('VERSION', meson.project_version()) -tools_conf.set('bindir', bindir) -tools_conf.set('libexecdir', libexecdir) -tools_conf.set('localedir', localedir) -tools_conf.set('localstatedir', localstatedir) -tools_conf.set('sbindir', sbindir) -tools_conf.set('schemadir', pkgdatadir / 'schemas') -tools_conf.set('sysconfdir', sysconfdir) +tools_conf =3D configuration_data({ + 'PACKAGE': meson.project_name(), + 'VERSION': meson.project_version(), + 'bindir': bindir, + 'libexecdir': libexecdir, + 'localedir': localedir, + 'localstatedir': localstatedir, + 'sbindir': sbindir, + 'schemadir': pkgdatadir / 'schemas', + 'sysconfdir': sysconfdir, +}) =20 configure_file( input: 'virt-xml-validate.in', --=20 2.35.1