Re: [PATCH 2/2] remote: apply translations to polkit files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Dec 19, 2024 at 05:29:07PM +0000, Daniel P. Berrangé wrote:
> 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.api.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é <berrange@xxxxxxxxxx>
> ---
>  meson.build                                    |  5 +++++
>  po/POTFILES                                    |  2 ++
>  po/meson.build                                 |  2 --
>  src/access/meson.build                         | 18 ++++++++++++++----
>  .../{libvirtd.policy => libvirtd.policy.in}    |  0
>  src/remote/meson.build                         | 13 ++++++++-----
>  6 files changed, 29 insertions(+), 11 deletions(-)
>  rename src/remote/{libvirtd.policy => 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('>=0.64.0')
>    fs = import('fs')
>  endif
>  
> +i18n = import('i18n')
> +
> +po_dir = meson.source_root() / 'po'
> +
>  # figure out if we are building from git
>  
>  git = run_command('test', '-e', '.git', check: false).returncode() == 0
> @@ -114,6 +118,7 @@ localedir = prefix / get_option('localedir')
>  mandir = prefix / get_option('mandir')
>  sbindir = prefix / get_option('sbindir')
>  sharedstatedir = prefix / get_option('sharedstatedir')
> +polkitactiondir = datadir / 'polkit-1' / 'actions'
>  
>  docdir = get_option('docdir')
>  if docdir == ''
> 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 = 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 += access_polkit_sources
>  
>    if conf.has('WITH_LIBVIRTD')
> -    custom_target(
> -      'org.libvirt.api.policy',
> +    polgen = 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,
> +    )

These two install  lines should not have been present here

> +
> +    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',

and this should have referenced 'polkitactiondir', so will fix these
when pushing

>      )
>    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
>  
>      if conf.has('WITH_POLKIT')
> -      polkitdir = 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',
> -- 
> 2.46.0
> 

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux