Files
flatpak/data/org.freedesktop.Flatpak.xml
Matthew Leeds 8292732e65 Add a system-helper UpdateSummary method
This system-helper method will allow flatpak to update the ostree repo
summary while running as a non-root user that's in the "sudo" group.
This will allow the `flatpak create-usb` command to work without
requiring the user to first run `sudo ostree summary -u`, and without
requiring the system to have `core.auto-update-summary` set to true in
the ostree repo config. This is also much more efficient than
`core.auto-update-summary` because it allows us to only update the
summary when we need it rather than after every transaction.

Generating the summary basically just involves traversing the repo to
enumerate all the refs and putting this information into a file, so I
don't think there are security concerns with allowing it to happen
without authentication.

Closes: #1945
Approved by: alexlarsson
2018-08-08 14:42:16 +00:00

150 lines
5.3 KiB
XML

<!DOCTYPE node PUBLIC
"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<!--
Copyright (C) 2015 Red Hat, Inc.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General
Public License along with this library; if not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
Author: Alexander Larsson <alexl@redhat.com>
-->
<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
<interface name='org.freedesktop.Flatpak.SessionHelper'>
<property name="version" type="u" access="read"/>
<method name="RequestMonitor">
<arg type='ay' name='path' direction='out'/>
</method>
<method name="RequestSession">
<arg type='a{sv}' name='data' direction='out'/>
</method>
</interface>
<interface name='org.freedesktop.Flatpak.Development'>
<property name="version" type="u" access="read"/>
<!-- This methods let you start processes, sandboxed or not on the
host, so its not generally safe to allow access to it to any
application. However, at times it is very useful to be able
to do this. For instance for developer tools this lets you
build flatpaks from inside a flatpak. -->
<method name="HostCommand">
<arg type='ay' name='cwd_path' direction='in'/>
<arg type='aay' name='argv' direction='in'/>
<arg type='a{uh}' name='fds' direction='in'/>
<arg type='a{ss}' name='envs' direction='in'/>
<arg type='u' name='flags' direction='in'/>
<arg type='u' name='pid' direction='out'/>
</method>
<method name="HostCommandSignal">
<arg type='u' name='pid' direction='in'/>
<arg type='u' name='signal' direction='in'/>
<arg type='b' name='to_process_group' direction='in'/>
</method>
<signal name="HostCommandExited">
<arg type='u' name='pid' direction='out'/>
<arg type='u' name='exit_status' direction='out'/>
</signal>
</interface>
<interface name='org.freedesktop.Flatpak.SystemHelper'>
<property name="version" type="u" access="read"/>
<method name="Deploy">
<arg type='ay' name='repo_path' direction='in'/>
<arg type='u' name='flags' direction='in'/>
<arg type='s' name='ref' direction='in'/>
<arg type='s' name='origin' direction='in'/>
<arg type='as' name='subpaths' direction='in'/>
<arg type='s' name='installation' direction='in'/>
</method>
<method name="DeployAppstream">
<arg type='ay' name='repo_path' direction='in'/>
<arg type='s' name='origin' direction='in'/>
<arg type='s' name='arch' direction='in'/>
<arg type='s' name='installation' direction='in'/>
</method>
<method name="Uninstall">
<arg type='u' name='flags' direction='in'/>
<arg type='s' name='ref' direction='in'/>
<arg type='s' name='installation' direction='in'/>
</method>
<method name="InstallBundle">
<arg type='ay' name='bundle_path' direction='in'/>
<arg type='u' name='flags' direction='in'/>
<arg type='s' name='remote' direction='in'/>
<arg type='s' name='installation' direction='in'/>
<arg type='s' name='ref' direction='out'/>
</method>
<method name="ConfigureRemote">
<arg type='u' name='flags' direction='in'/>
<arg type='s' name='remote' direction='in'/>
<arg type='s' name='config' direction='in'/>
<arg type='ay' name='gpg_key' direction='in'>
<annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
</arg>
<arg type='s' name='installation' direction='in'/>
</method>
<method name="Configure">
<arg type='u' name='flags' direction='in'/>
<arg type='s' name='key' direction='in'/>
<arg type='s' name='value' direction='in'/>
<arg type='s' name='installation' direction='in'/>
</method>
<method name="UpdateRemote">
<arg type='u' name='flags' direction='in'/>
<arg type='s' name='remote' direction='in'/>
<arg type='s' name='installation' direction='in'/>
<arg type='ay' name='summary_path' direction='in'/>
<arg type='ay' name='summary_sig_path' direction='in'/>
</method>
<method name="RemoveLocalRef">
<arg type='s' name='remote' direction='in'/>
<arg type='s' name='ref' direction='in'/>
<arg type='s' name='installation' direction='in'/>
</method>
<method name="PruneLocalRepo">
<arg type='s' name='installation' direction='in'/>
</method>
<method name="RunTriggers">
<arg type='s' name='installation' direction='in'/>
</method>
<method name="EnsureRepo">
<arg type='s' name='installation' direction='in'/>
</method>
<method name="UpdateSummary">
<arg type='s' name='installation' direction='in'/>
</method>
</interface>
</node>