From nobody Sun Dec 22 08:04:57 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1734629419360328.7811501252156; Thu, 19 Dec 2024 09:30:19 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 4989817DB; Thu, 19 Dec 2024 12:30:18 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 0CF72178F; Thu, 19 Dec 2024 12:29:33 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id F03C01898; Thu, 19 Dec 2024 12:29:27 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id EDCE11895 for ; Thu, 19 Dec 2024 12:29:18 -0500 (EST) Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-266-HzmZYjrQPpyT6aUWiBwAkQ-1; Thu, 19 Dec 2024 12:29:17 -0500 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id E8A1219560BD; Thu, 19 Dec 2024 17:29:15 +0000 (UTC) Received: from toolbox.redhat.com (unknown [10.42.28.54]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 7539430044C1; Thu, 19 Dec 2024 17:29:14 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1734629358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DszpKvQZBmTBaeEpOV3jgWkDxd6wT4uDXsoj2Qyta58=; b=GVftSGrZ24rSclM7AcF/Jx5cbFjOiKYgYo35dTEmuo/0rFYTc6ISoL7z6odNNWpFCAcnNf y3ByEtWYB4jSa1zkHspZ8/iE1N4c4Ja3r5zXCO2G5J7NzWrq1Ry0oIS5Hg+/EjEVCSmdks kcKIlIFATmqDaSvV4uLpeMc0RKfuDoE= X-MC-Unique: HzmZYjrQPpyT6aUWiBwAkQ-1 X-Mimecast-MFC-AGG-ID: HzmZYjrQPpyT6aUWiBwAkQ From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: devel@lists.libvirt.org Subject: [PATCH 2/2] remote: apply translations to polkit files Date: Thu, 19 Dec 2024 17:29:07 +0000 Message-ID: <20241219172908.200563-3-berrange@redhat.com> In-Reply-To: <20241219172908.200563-1-berrange@redhat.com> References: <20241219172908.200563-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: G1Vvuw185Bx3hKCR43YpuRi3QQEgecSuRbSyTE_5NOI_1734629356 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: BDBE4CGYCORSKQOUEMADNCC2QBVP5HVP X-Message-ID-Hash: BDBE4CGYCORSKQOUEMADNCC2QBVP5HVP X-MailFrom: berrange@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: zhanchun li X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1734629421360116600 Content-Type: text/plain; charset="utf-8" The 'description' and 'message' fields in polkit policy files should be translated into the user's chosen language. xgettext is told to search in both and source and build dirs by meson. Unfortunately a bug in xgettext means that when it searches for built files in XML format, it'll trigger a warning message due to failure to load the generated file from the source dir: xgettext: cannot read ..snip../libvirt/src/access/org.libvirt.api.policy:= failed to load external entity "..snip../libvirt/src/access/org.libvirt.ap= i.policy" This is harmless since it then goes on to try the build dir and succeeds, but will pollute the output of 'ninja libvirt-pot' Related: https://gitlab.com/libvirt/libvirt/-/merge_requests/387 Signed-off-by: Daniel P. Berrang=C3=A9 --- meson.build | 5 +++++ po/POTFILES | 2 ++ po/meson.build | 2 -- src/access/meson.build | 18 ++++++++++++++---- .../{libvirtd.policy =3D> libvirtd.policy.in} | 0 src/remote/meson.build | 13 ++++++++----- 6 files changed, 29 insertions(+), 11 deletions(-) rename src/remote/{libvirtd.policy =3D> libvirtd.policy.in} (100%) diff --git a/meson.build b/meson.build index ca1b915737..0d0bd03a2a 100644 --- a/meson.build +++ b/meson.build @@ -15,6 +15,10 @@ if meson.version().version_compare('>=3D0.64.0') fs =3D import('fs') endif =20 +i18n =3D import('i18n') + +po_dir =3D meson.source_root() / 'po' + # figure out if we are building from git =20 git =3D run_command('test', '-e', '.git', check: false).returncode() =3D= =3D 0 @@ -114,6 +118,7 @@ localedir =3D prefix / get_option('localedir') mandir =3D prefix / get_option('mandir') sbindir =3D prefix / get_option('sbindir') sharedstatedir =3D prefix / get_option('sharedstatedir') +polkitactiondir =3D datadir / 'polkit-1' / 'actions' =20 docdir =3D get_option('docdir') if docdir =3D=3D '' diff --git a/po/POTFILES b/po/POTFILES index 3514aa3dca..ff6f3763d5 100644 --- a/po/POTFILES +++ b/po/POTFILES @@ -1,6 +1,7 @@ src/access/viraccessapicheck.c src/access/viraccessapichecklxc.c src/access/viraccessapicheckqemu.c +src/access/org.libvirt.api.policy.in src/admin/admin_client.h src/admin/admin_server_dispatch_stubs.h src/remote/remote_client_bodies.h @@ -201,6 +202,7 @@ src/qemu/qemu_validate.c src/qemu/qemu_vhost_user.c src/qemu/qemu_vhost_user_gpu.c src/qemu/qemu_virtiofs.c +src/remote/libvirtd.policy.in src/remote/remote_daemon.c src/remote/remote_daemon_config.c src/remote/remote_daemon_dispatch.c diff --git a/po/meson.build b/po/meson.build index 126eeabe17..d8ace5373e 100644 --- a/po/meson.build +++ b/po/meson.build @@ -1,5 +1,3 @@ -i18n =3D import('i18n') - i18n.gettext( meson.project_name(), args: [ diff --git a/src/access/meson.build b/src/access/meson.build index fc5ba5b342..42aa5c7225 100644 --- a/src/access/meson.build +++ b/src/access/meson.build @@ -66,14 +66,24 @@ if conf.has('WITH_POLKIT') access_sources +=3D access_polkit_sources =20 if conf.has('WITH_LIBVIRTD') - custom_target( - 'org.libvirt.api.policy', + polgen =3D custom_target( + 'org.libvirt.api.policy.in', input: access_perm_h, - output: 'org.libvirt.api.policy', + output: 'org.libvirt.api.policy.in', command: [ meson_python_prog, python3_prog, genpolkit_prog, '@INPUT@= ' ], capture: true, + build_by_default: true, + install: true, + install_dir: polkitactiondir, + ) + + i18n.merge_file( + input: polgen, + output: 'org.libvirt.api.policy', + po_dir: po_dir, + data_dirs: [po_dir], install: true, - install_dir: datadir / 'polkit-1' / 'actions', + install_dir: polkitdir / 'actions', ) endif endif diff --git a/src/remote/libvirtd.policy b/src/remote/libvirtd.policy.in similarity index 100% rename from src/remote/libvirtd.policy rename to src/remote/libvirtd.policy.in diff --git a/src/remote/meson.build b/src/remote/meson.build index 831acaaa01..9f66ee2e1c 100644 --- a/src/remote/meson.build +++ b/src/remote/meson.build @@ -294,12 +294,15 @@ if conf.has('WITH_REMOTE') endif =20 if conf.has('WITH_POLKIT') - polkitdir =3D datadir / 'polkit-1' - install_data( - 'libvirtd.policy', - install_dir: polkitdir / 'actions', - rename: [ 'org.libvirt.unix.policy' ], + i18n.merge_file( + input: 'libvirtd.policy.in', + output: 'org.libvirt.unix.policy', + po_dir: po_dir, + data_dirs: [po_dir], + install: true, + install_dir: polkitactiondir, ) + install_data( 'libvirtd.rules', install_dir: polkitdir / 'rules.d', --=20 2.46.0