1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
There are currently three interfaces on the service org.freedesktop.PackageKit.
== org.freedesktop.PackageKit ==
* This interface is a legacy interface first used in gnome-packagekit 0.2.1
and methods were added and changed over the 0.2.x series.
* It was not really designed at this time as a standalone service, and as such
provides little flexibility for client programs.
* Consider this interface DEPRECATED as it will be removed in the 0.4.x series.
== org.freedesktop.PackageKit.Query ==
* This interface is used for synchronous querying of package data, for instance
finding what package owns a file, or if a package is installed.
* It is designed to be easy to use, rather than flexible.
* In the interaction mode an application can also specify that it should not
be blocked when other transactions are in progress.
If the system is in the process of updating glibc and the kernel, and
a trivial request is issued for org.freedesktop.PackageKit.Query.IsInstalled
then we might not want to wait several minutes for an accurate answer.
The timeout command is supplied for this purpose.
- By adding the interaction mode of timeout=0 the method will immediately fail
if there are any other transactions running
- The mode timeout=10 would wait a maximum of 10 seconds before returning with
an error.
== org.freedesktop.PackageKit.Modify ==
* This interface is for synchronous modification of the system, for instance
installing applications or other resources.
* The user interaction is controlled using an 'interaction mode', and this is
outlined below:
There are lots of different types that can be shown or suppressed:
- confirm-search Ask the user before we search
- confirm-deps Ask the user to agree to deps
- confirm-install Ask the user before we install
- progress Show the user a progress bar
- finished Ask the user a finished dialog box
- warning Show the user a warning
These are obviously something that people may want to set per-user defaults,
and so the GSettings key org.gnome.packagekit:dbus_default_interaction is
provided.
This sets up the default interactions used by clients unless they opt-in
or opt-out of certain interactions.
Of course, we do not want software silently installing things behind our back,
even if they are signed and trusted. One could imagine an application hiding
all the interactions do install some software silently.
Another GSettings key org.gnome.packagekit:dbus_enforced_interaction is used
to set modes that are absolutely required or suppressed, even when the client
or defaults specify otherwise.
An example:
Defaults specify:
show-confirm-search,show-confirm-deps,show-confirm-install,show-progress
Enforced specify:
show-confirm-install
Client specifies:
hide-confirm-install,hide-confirm-search,show-warnings
The defaults are modified by the client settings to add warnings, and
remove confirm-install.
The admin specified confirm-install is required, so the finished interaction
mode is:
show-confirm-deps,show-confirm-install,show-progress,show-warnings
|