diff --git a/policy/its/polkit.its b/policy/its/polkit.its new file mode 100644 index 000000000..1c37e6bee --- /dev/null +++ b/policy/its/polkit.its @@ -0,0 +1,8 @@ + + + + + diff --git a/policy/its/polkit.loc b/policy/its/polkit.loc new file mode 100644 index 000000000..c7427ec67 --- /dev/null +++ b/policy/its/polkit.loc @@ -0,0 +1,6 @@ + + + + + + diff --git a/policy/meson.build b/policy/meson.build index def89763d..2a418aa78 100644 --- a/policy/meson.build +++ b/policy/meson.build @@ -1,11 +1,43 @@ install_data('org.freedesktop.fwupd.rules', install_dir : 'share/polkit-1/rules.d') -i18n.merge_file( - input: 'org.freedesktop.fwupd.policy.in', - output: 'org.freedesktop.fwupd.policy', - type: 'xml', - po_dir: join_paths(meson.source_root(), 'po'), - install: true, - install_dir: join_paths(get_option('datadir'), 'polkit-1', 'actions') -) +#meson 0.41.0 added support for data_dirs argument +if meson.version().version_compare('>=0.41.0') + #newer polkit has the ITS rules included + if polkit.version().version_compare('>0.113') + i18n.merge_file( + input: 'org.freedesktop.fwupd.policy.in', + output: 'org.freedesktop.fwupd.policy', + install: true, + install_dir: join_paths(get_option('datadir'), 'polkit-1', 'actions') , + type: 'xml', + po_dir: join_paths(meson.source_root(), 'po') + ) + #older polkit is missing ITS rules and will fail + else + i18n.merge_file( + input: 'org.freedesktop.fwupd.policy.in', + output: 'org.freedesktop.fwupd.policy', + install: true, + install_dir: join_paths(get_option('datadir'), 'polkit-1', 'actions') , + type: 'xml', + data_dirs: join_paths(meson.source_root(), 'policy'), + po_dir: join_paths(meson.source_root(), 'po') + ) + endif +#older polkit and older meson, need to do some custom targets +#see https://github.com/hughsie/fwupd/issues/107 +else + envbin = find_program('env') + gettext_data_dir = 'GETTEXTDATADIRS=' + join_paths(meson.source_root(), 'policy') + custom_target('org.freedesktop.fwupd.policy', + input: 'org.freedesktop.fwupd.policy.in', + output: 'org.freedesktop.fwupd.policy', + command: [envbin, gettext_data_dir, 'msgfmt', '--xml', + '--template', '@INPUT@', + '-d', join_paths(meson.source_root(), 'po'), + '-o', '@OUTPUT@'], + install: true, + install_dir: join_paths(get_option('datadir'), 'polkit-1', 'actions') + ) +endif