diff --git a/accounts-service/com.endlessm.ParentalControls.AppFilter.xml b/accounts-service/com.endlessm.ParentalControls.AppFilter.xml new file mode 100644 index 0000000..3efae8e --- /dev/null +++ b/accounts-service/com.endlessm.ParentalControls.AppFilter.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/accounts-service/com.endlessm.ParentalControls.policy b/accounts-service/com.endlessm.ParentalControls.policy new file mode 100644 index 0000000..ff09f2d --- /dev/null +++ b/accounts-service/com.endlessm.ParentalControls.policy @@ -0,0 +1,42 @@ + + + + Change your own app filter + Authentication is required to change your app filter. + + auth_admin_keep + auth_admin_keep + auth_admin_keep + + + + + Read your own app filter + Authentication is required to read your app filter. + + yes + yes + yes + + + + + Change another user’s app filter + Authentication is required to change another user’s app filter. + + auth_admin_keep + auth_admin_keep + auth_admin_keep + + + + + Read another user’s app filter + Authentication is required to read another user’s app filter. + + auth_admin_keep + auth_admin_keep + auth_admin_keep + + + \ No newline at end of file diff --git a/accounts-service/meson.build b/accounts-service/meson.build new file mode 100644 index 0000000..ce7a6ac --- /dev/null +++ b/accounts-service/meson.build @@ -0,0 +1,8 @@ +install_data('com.endlessm.ParentalControls.policy', + install_dir: polkitpolicydir) + +install_data('com.endlessm.ParentalControls.AppFilter.xml', + install_dir: dbusinterfacesdir) +meson.add_install_script(meson_make_symlink, + join_paths(dbusinterfacesdir, 'com.endlessm.ParentalControls.AppFilter.xml'), + join_paths(accountsserviceinterfacesdir, 'com.endlessm.ParentalControls.AppFilter.xml')) \ No newline at end of file diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..9f93ea9 --- /dev/null +++ b/meson.build @@ -0,0 +1,30 @@ +project('eos-parental-controls', 'c', + version : '0.1.0', + meson_version : '>= 0.47.0', + license: 'LGPLv2.1+', + default_options : [ + 'buildtype=debugoptimized', + 'warning_level=2', + 'c_std=gnu11', + ] +) + +pkgconfig = import('pkgconfig') + +meson_make_symlink = join_paths(meson.source_root(), 'tools', 'meson-make-symlink.sh') + +prefix = get_option('prefix') +datadir = join_paths(prefix, get_option('datadir')) + +# FIXME: This isn’t exposed in accountsservice.pc +accountsserviceinterfacesdir = join_paths(datadir, 'accountsservice', 'interfaces') + +dbus = dependency('dbus-1') +dbusinterfacesdir = dbus.get_pkgconfig_variable('interfaces_dir', + define_variable: ['datadir', datadir]) + +polkit_gobject = dependency('polkit-gobject-1') +polkitpolicydir = polkit_gobject.get_pkgconfig_variable('policydir', + define_variable: ['prefix', prefix]) + +subdir('accounts-service') \ No newline at end of file diff --git a/tools/meson-make-symlink.sh b/tools/meson-make-symlink.sh new file mode 100755 index 0000000..501cd43 --- /dev/null +++ b/tools/meson-make-symlink.sh @@ -0,0 +1,12 @@ +#!/bin/sh +set -eu + +# this is needed mostly because $DESTDIR is provided as a variable, +# and we need to create the target directory... + +mkdir -vp "$(dirname "${DESTDIR:-}$2")" +if [ "$(dirname $1)" = . ]; then + ln -vfs -T "$1" "${DESTDIR:-}$2" +else + ln -vfs -T --relative "${DESTDIR:-}$1" "${DESTDIR:-}$2" +fi