libflatpak API Reference#

Flatpak Library Reference Manual

Flatpak Library Reference Manual

For flatpak 1.9.1


Table of Contents

Flatpak
FlatpakInstallation — Installation information
FlatpakRemote — Remote repository
FlatpakTransactionOperation — Operation in a transaction
FlatpakTransactionProgress — Progress of an operation
FlatpakTransaction — Transaction information
FlatpakRef — Application reference
FlatpakInstalledRef — Installed application reference
FlatpakRelatedRef — Related application reference
FlatpakRemoteRef — Remote application reference
FlatpakBundleRef — Application bundle reference
FlatpakInstance — Information about a running sandbox
Error codes
Version information
D-Bus APIs
org.freedesktop.Flatpak.Authenticator
org.freedesktop.Flatpak.Development — Flatpak development interface
org.freedesktop.Flatpak.SessionHelper — Flatpak session service
org.freedesktop.Flatpak.SystemHelper — Flatpak system service
org.freedesktop.impl.portal.PermissionStore — Database to store permissions
org.freedesktop.portal.Documents — Document portal
org.freedesktop.portal.Flatpak — Flatpak portal
org.freedesktop.portal.Flatpak.UpdateMonitor
Object Hierarchy
API Index
Index of deprecated API
Annotation Glossary

Flatpak

Table of Contents

FlatpakInstallation — Installation information
FlatpakRemote — Remote repository
FlatpakTransactionOperation — Operation in a transaction
FlatpakTransactionProgress — Progress of an operation
FlatpakTransaction — Transaction information
FlatpakRef — Application reference
FlatpakInstalledRef — Installed application reference
FlatpakRelatedRef — Related application reference
FlatpakRemoteRef — Remote application reference
FlatpakBundleRef — Application bundle reference
FlatpakInstance — Information about a running sandbox
Error codes
Version information

Name

FlatpakInstallation — Installation information

Functions

FlatpakInstallation * flatpak_installation_new_system ()
FlatpakInstallation * flatpak_installation_new_system_with_id ()
FlatpakInstallation * flatpak_installation_new_user ()
FlatpakInstallation * flatpak_installation_new_for_path ()
gboolean flatpak_installation_get_is_user ()
GFile * flatpak_installation_get_path ()
GFileMonitor * flatpak_installation_create_monitor ()
FlatpakInstalledRef * flatpak_installation_install ()
FlatpakInstalledRef * flatpak_installation_install_full ()
FlatpakInstalledRef * flatpak_installation_update ()
FlatpakInstalledRef * flatpak_installation_update_full ()
gboolean flatpak_installation_uninstall ()
gboolean flatpak_installation_uninstall_full ()
gboolean flatpak_installation_launch ()
gboolean flatpak_installation_launch_full ()
FlatpakInstalledRef * flatpak_installation_get_current_installed_app ()
const char * flatpak_installation_get_display_name ()
const char * flatpak_installation_get_id ()
FlatpakInstalledRef * flatpak_installation_get_installed_ref ()
gboolean flatpak_installation_get_min_free_space_bytes ()
gint flatpak_installation_get_priority ()
FlatpakStorageType flatpak_installation_get_storage_type ()
void flatpak_installation_set_no_interaction ()
gboolean flatpak_installation_get_no_interaction ()
GPtrArray * flatpak_installation_list_installed_refs ()
GPtrArray * flatpak_installation_list_installed_refs_by_kind ()
GPtrArray * flatpak_installation_list_installed_refs_for_update ()
GPtrArray * flatpak_installation_list_installed_related_refs_sync ()
GPtrArray * flatpak_installation_list_unused_refs ()
GPtrArray * flatpak_installation_list_remote_refs_sync ()
GPtrArray * flatpak_installation_list_remote_refs_sync_full ()
GPtrArray * flatpak_installation_list_remotes_by_type ()
GPtrArray * flatpak_installation_list_remote_related_refs_sync ()
GPtrArray * flatpak_installation_list_remotes ()
FlatpakRemote * flatpak_installation_get_remote_by_name ()
GBytes * flatpak_installation_fetch_remote_metadata_sync ()
FlatpakRemoteRef * flatpak_installation_fetch_remote_ref_sync ()
FlatpakRemoteRef * flatpak_installation_fetch_remote_ref_sync_full ()
gboolean flatpak_installation_fetch_remote_size_sync ()
char * flatpak_installation_load_app_overrides ()
gboolean flatpak_installation_update_appstream_sync ()
FlatpakInstalledRef * flatpak_installation_install_bundle ()
FlatpakRemoteRef * flatpak_installation_install_ref_file ()
gboolean flatpak_installation_drop_caches ()
gboolean flatpak_installation_add_remote ()
gboolean flatpak_installation_modify_remote ()
gboolean flatpak_installation_remove_remote ()
gboolean flatpak_installation_update_remote_sync ()
gboolean flatpak_installation_cleanup_local_refs_sync ()
char * flatpak_installation_get_config ()
char ** flatpak_installation_get_default_languages ()
char ** flatpak_installation_get_default_locales ()
gboolean flatpak_installation_prune_local_repo ()
gboolean flatpak_installation_remove_local_ref_sync ()
gboolean flatpak_installation_set_config_sync ()
gboolean flatpak_installation_update_appstream_full_sync ()
gboolean flatpak_installation_run_triggers ()
const char * flatpak_get_default_arch ()
const char *const * flatpak_get_supported_arches ()
GPtrArray * flatpak_get_system_installations ()
void (*FlatpakProgressCallback) ()

Object Hierarchy

    GObject
    ╰── FlatpakInstallation

Description

FlatpakInstallation is the toplevel object that software installers should use to operate on an flatpak applications.

An FlatpakInstallation object provides information about an installation location for flatpak applications. Typical installation locations are either system-wide (in $prefix/var/lib/flatpak) or per-user (in ~/.local/share/flatpak).

FlatpakInstallation can list configured remotes as well as installed application and runtime references (in short: refs), and it can add, remove and modify remotes.

FlatpakInstallation can also run, install, update and uninstall applications and runtimes, but FlatpakTransaction is a better, high-level API for these tasks.

To get a list of all configured installations, use flatpak_get_system_installations(), together with flatpak_installation_new_user().

The FlatpakInstallation API is threadsafe in the sense that it is safe to run two operations at the same time, in different threads (or processes).

Functions

flatpak_installation_new_system ()

FlatpakInstallation *
flatpak_installation_new_system (GCancellable *cancellable,
                                 GError **error);

Creates a new FlatpakInstallation for the default system-wide installation.

Parameters

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a new FlatpakInstallation.

[transfer full]

flatpak_installation_new_system_with_id ()

FlatpakInstallation *
flatpak_installation_new_system_with_id
                               (const char *id,
                                GCancellable *cancellable,
                                GError **error);

Creates a new FlatpakInstallation for the system-wide installation id .

Parameters

id

the ID of the system-wide installation.

[nullable]

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a new FlatpakInstallation.

[transfer full]

Since: 0.8

flatpak_installation_new_user ()

FlatpakInstallation *
flatpak_installation_new_user (GCancellable *cancellable,
                               GError **error);

Creates a new FlatpakInstallation for the per-user installation.

Parameters

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a new FlatpakInstallation.

[transfer full]

flatpak_installation_new_for_path ()

FlatpakInstallation *
flatpak_installation_new_for_path (GFile *path,
                                   gboolean user,
                                   GCancellable *cancellable,
                                   GError **error);

Creates a new FlatpakInstallation for the installation at the given path .

Parameters

path

a GFile

 

user

whether this is a user-specific location

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a new FlatpakInstallation.

[transfer full]

flatpak_installation_get_is_user ()

gboolean
flatpak_installation_get_is_user (FlatpakInstallation *self);

Returns whether the installation is for a user-specific location.

Parameters

Returns

TRUE if self is a per-user installation

flatpak_installation_get_path ()

GFile *
flatpak_installation_get_path (FlatpakInstallation *self);

Returns the installation location for self .

Parameters

Returns

an GFile.

[transfer full]

flatpak_installation_create_monitor ()

GFileMonitor *
flatpak_installation_create_monitor (FlatpakInstallation *self,
                                     GCancellable *cancellable,
                                     GError **error);

Gets monitor object for the installation. The returned file monitor will emit the “changed” signal whenever an application or runtime was installed, uninstalled or updated.

Parameters

self

a FlatpakInstallation

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a new GFileMonitor instance, or NULL on error.

[transfer full]

flatpak_installation_install ()

FlatpakInstalledRef *
flatpak_installation_install (FlatpakInstallation *self,
                              const char *remote_name,
                              FlatpakRefKind kind,
                              const char *name,
                              const char *arch,
                              const char *branch,
                              FlatpakProgressCallback progress,
                              gpointer progress_data,
                              GCancellable *cancellable,
                              GError **error);

Warning

flatpak_installation_install has been deprecated since version 1.7.0 and should not be used in newly-written code.

Use flatpak_transaction_add_install() instead.

This is an old deprecated function, you should use FlatpakTransaction and flatpak_transaction_add_install() instead. It has a lot more interesting features.

Install a new application or runtime.

Note that this function was originally written to always return a FlatpakInstalledRef. Since 0.9.13, passing FLATPAK_INSTALL_FLAGS_NO_DEPLOY will only pull refs into the local flatpak repository without deploying them, however this function will be unable to provide information on the installed ref, so FLATPAK_ERROR_ONLY_PULLED will be set and the caller must respond accordingly.

Parameters

self

a FlatpakInstallation

 

remote_name

name of the remote to use

 

kind

what this ref contains (an FlatpakRefKind)

 

name

name of the app/runtime to fetch

 

arch

which architecture to fetch (default: current architecture).

[nullable]

branch

which branch to fetch (default: 'master').

[nullable]

progress

progress callback.

[scope call][nullable]

progress_data

user data passed to progress .

[closure progress][nullable]

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

The ref for the newly installed app or NULL on failure.

[transfer full]

flatpak_installation_install_full ()

FlatpakInstalledRef *
flatpak_installation_install_full (FlatpakInstallation *self,
                                   FlatpakInstallFlags flags,
                                   const char *remote_name,
                                   FlatpakRefKind kind,
                                   const char *name,
                                   const char *arch,
                                   const char *branch,
                                   const char * const *subpaths,
                                   FlatpakProgressCallback progress,
                                   gpointer progress_data,
                                   GCancellable *cancellable,
                                   GError **error);

Warning

flatpak_installation_install_full has been deprecated since version 1.7.0 and should not be used in newly-written code.

Use flatpak_transaction_add_install() instead.

This is an old deprecated function, you should use FlatpakTransaction and flatpak_transaction_add_install() instead. It has a lot more interesting features.

Install a new application or runtime.

Note that this function was originally written to always return a FlatpakInstalledRef. Since 0.9.13, passing FLATPAK_INSTALL_FLAGS_NO_DEPLOY will only pull refs into the local flatpak repository without deploying them, however this function will be unable to provide information on the installed ref, so FLATPAK_ERROR_ONLY_PULLED will be set and the caller must respond accordingly.

Parameters

self

a FlatpakInstallation

 

flags

set of FlatpakInstallFlags flag

 

remote_name

name of the remote to use

 

kind

what this ref contains (an FlatpakRefKind)

 

name

name of the app/runtime to fetch

 

arch

which architecture to fetch (default: current architecture).

[nullable]

branch

which branch to fetch (default: 'master').

[nullable]

subpaths

A list of subpaths to fetch, or NULL for everything.

[nullable][array zero-terminated=1]

progress

progress callback.

[scope call][nullable]

progress_data

user data passed to progress .

[closure progress][nullable]

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

The ref for the newly installed app or NULL on failure.

[transfer full]

flatpak_installation_update ()

FlatpakInstalledRef *
flatpak_installation_update (FlatpakInstallation *self,
                             FlatpakUpdateFlags flags,
                             FlatpakRefKind kind,
                             const char *name,
                             const char *arch,
                             const char *branch,
                             FlatpakProgressCallback progress,
                             gpointer progress_data,
                             GCancellable *cancellable,
                             GError **error);

Warning

flatpak_installation_update has been deprecated since version 1.7.0 and should not be used in newly-written code.

Use flatpak_transaction_add_update() instead.

This is an old deprecated function, you should use FlatpakTransaction and flatpak_transaction_add_update() instead. It has a lot more interesting features.

Update an application or runtime.

If the specified package is not installed, then FLATPAK_ERROR_NOT_INSTALLED will be thrown.

If no updates could be found on the remote end and the package is already up to date, then FLATPAK_ERROR_ALREADY_INSTALLED will be thrown.

Parameters

self

a FlatpakInstallation

 

flags

set of FlatpakUpdateFlags flag

 

kind

whether this is an app or runtime

 

name

name of the app or runtime to update

 

arch

architecture of the app or runtime to update (default: current architecture).

[nullable]

branch

name of the branch of the app or runtime to update (default: master).

[nullable]

progress

the callback.

[scope call][nullable]

progress_data

user data passed to progress .

[closure progress][nullable]

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

The ref for the newly updated app or NULL on failure.

[transfer full]

flatpak_installation_update_full ()

FlatpakInstalledRef *
flatpak_installation_update_full (FlatpakInstallation *self,
                                  FlatpakUpdateFlags flags,
                                  FlatpakRefKind kind,
                                  const char *name,
                                  const char *arch,
                                  const char *branch,
                                  const char * const *subpaths,
                                  FlatpakProgressCallback progress,
                                  gpointer progress_data,
                                  GCancellable *cancellable,
                                  GError **error);

Warning

flatpak_installation_update_full has been deprecated since version 1.7.0 and should not be used in newly-written code.

Use flatpak_transaction_add_update() instead.

This is an old deprecated function, you should use FlatpakTransaction and flatpak_transaction_add_update() instead. It has a lot more interesting features.

Update an application or runtime.

If the specified package is not installed, then FLATPAK_ERROR_NOT_INSTALLED will be thrown.

If no updates could be found on the remote end and the package is already up to date, then FLATPAK_ERROR_ALREADY_INSTALLED will be thrown.

Parameters

self

a FlatpakInstallation

 

flags

set of FlatpakUpdateFlags flag

 

kind

whether this is an app or runtime

 

name

name of the app or runtime to update

 

arch

architecture of the app or runtime to update (default: current architecture).

[nullable]

branch

name of the branch of the app or runtime to update (default: master).

[nullable]

subpaths

A list of subpaths to fetch, or NULL for everything.

[nullable][array zero-terminated=1]

progress

the callback.

[scope call][nullable]

progress_data

user data passed to progress .

[closure progress][nullable]

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

The ref for the newly updated app or NULL on failure.

[transfer full]

flatpak_installation_uninstall ()

gboolean
flatpak_installation_uninstall (FlatpakInstallation *self,
                                FlatpakRefKind kind,
                                const char *name,
                                const char *arch,
                                const char *branch,
                                FlatpakProgressCallback progress,
                                gpointer progress_data,
                                GCancellable *cancellable,
                                GError **error);

Warning

flatpak_installation_uninstall has been deprecated since version 1.7.0 and should not be used in newly-written code.

Use flatpak_transaction_add_uninstall() instead.

This is an old deprecated function, you should use FlatpakTransaction and flatpak_transaction_add_uninstall() instead. It has a lot more interesting features.

Uninstall an application or runtime.

Parameters

self

a FlatpakInstallation

 

kind

what this ref contains (an FlatpakRefKind)

 

name

name of the app or runtime to uninstall

 

arch

architecture of the app or runtime to uninstall; if NULL, flatpak_get_default_arch() is assumed.

[nullable]

branch

name of the branch of the app or runtime to uninstall; if NULL, master is assumed.

[nullable]

progress

the callback.

[scope call][nullable]

progress_data

user data passed to progress .

[closure progress][nullable]

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE on success

flatpak_installation_uninstall_full ()

gboolean
flatpak_installation_uninstall_full (FlatpakInstallation *self,
                                     FlatpakUninstallFlags flags,
                                     FlatpakRefKind kind,
                                     const char *name,
                                     const char *arch,
                                     const char *branch,
                                     FlatpakProgressCallback progress,
                                     gpointer progress_data,
                                     GCancellable *cancellable,
                                     GError **error);

Warning

flatpak_installation_uninstall_full has been deprecated since version 1.7.0 and should not be used in newly-written code.

Use flatpak_transaction_add_uninstall() instead.

This is an old deprecated function, you should use FlatpakTransaction and flatpak_transaction_add_uninstall() instead. It has a lot more interesting features.

Uninstall an application or runtime.

Parameters

self

a FlatpakInstallation

 

flags

set of FlatpakUninstallFlags flags

 

kind

what this ref contains (an FlatpakRefKind)

 

name

name of the app or runtime to uninstall

 

arch

architecture of the app or runtime to uninstall; if NULL, flatpak_get_default_arch() is assumed.

[nullable]

branch

name of the branch of the app or runtime to uninstall; if NULL, master is assumed.

[nullable]

progress

the callback.

[scope call][nullable]

progress_data

user data passed to progress .

[closure progress][nullable]

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE on success

Since: 0.11.8

flatpak_installation_launch ()

gboolean
flatpak_installation_launch (FlatpakInstallation *self,
                             const char *name,
                             const char *arch,
                             const char *branch,
                             const char *commit,
                             GCancellable *cancellable,
                             GError **error);

Launch an installed application.

You can use flatpak_installation_get_installed_ref() or flatpak_installation_get_current_installed_app() to find out what builds are available, in order to get a value for commit .

Parameters

self

a FlatpakInstallation

 

name

name of the app to launch

 

arch

which architecture to launch (default: current architecture).

[nullable]

branch

which branch of the application (default: "master").

[nullable]

commit

the commit of branch to launch.

[nullable]

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE, unless an error occurred

flatpak_installation_launch_full ()

gboolean
flatpak_installation_launch_full (FlatpakInstallation *self,
                                  FlatpakLaunchFlags flags,
                                  const char *name,
                                  const char *arch,
                                  const char *branch,
                                  const char *commit,
                                  FlatpakInstance **instance_out,
                                  GCancellable *cancellable,
                                  GError **error);

Launch an installed application.

You can use flatpak_installation_get_installed_ref() or flatpak_installation_get_current_installed_app() to find out what builds are available, in order to get a value for commit .

Compared to flatpak_installation_launch(), this function returns a FlatpakInstance that can be used to get information about the running instance. You can also use it to wait for the instance to be done with g_child_watch_add() if you pass the FLATPAK_LAUNCH_FLAGS_DO_NOT_REAP flag.

Parameters

self

a FlatpakInstallation

 

flags

set of FlatpakLaunchFlags

 

name

name of the app to launch

 

arch

which architecture to launch (default: current architecture).

[nullable]

branch

which branch of the application (default: "master").

[nullable]

commit

the commit of branch to launch.

[nullable]

instance_out

return location for a FlatpakInstance.

[nullable]

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE, unless an error occurred

Since: 1.1

flatpak_installation_get_current_installed_app ()

FlatpakInstalledRef *
flatpak_installation_get_current_installed_app
                               (FlatpakInstallation *self,
                                const char *name,
                                GCancellable *cancellable,
                                GError **error);

Get the last build of reference name that was installed with flatpak_installation_install(), or NULL if the reference has never been installed locally.

Parameters

self

a FlatpakInstallation

 

name

the name of the app

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

an FlatpakInstalledRef.

[transfer full]

flatpak_installation_get_display_name ()

const char *
flatpak_installation_get_display_name (FlatpakInstallation *self);

Returns the display name of the installation for self .

Note that this function may return NULL if the installation does not have a display name.

Parameters

Returns

a string with the installation's display name.

[transfer none]

Since: 0.8

flatpak_installation_get_id ()

const char *
flatpak_installation_get_id (FlatpakInstallation *self);

Returns the ID of the installation for self .

The ID for the default system installation is "default". The ID for the user installation is "user".

Parameters

Returns

a string with the installation's ID.

[transfer none]

Since: 0.8

flatpak_installation_get_installed_ref ()

FlatpakInstalledRef *
flatpak_installation_get_installed_ref
                               (FlatpakInstallation *self,
                                FlatpakRefKind kind,
                                const char *name,
                                const char *arch,
                                const char *branch,
                                GCancellable *cancellable,
                                GError **error);

Returns information about an installed ref, such as the available builds, its size, location, etc.

Parameters

self

a FlatpakInstallation

 

kind

whether this is an app or runtime

 

name

name of the app/runtime to fetch

 

arch

which architecture to fetch (default: current architecture).

[nullable]

branch

which branch to fetch (default: "master").

[nullable]

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

an FlatpakInstalledRef, or NULL if an error occurred.

[transfer full]

flatpak_installation_get_min_free_space_bytes ()

gboolean
flatpak_installation_get_min_free_space_bytes
                               (FlatpakInstallation *self,
                                guint64 *out_bytes,
                                GError **error);

Returns the min-free-space config value from the OSTree repository of this installation.

Applications can use this value, together with information about the available disk space and the size of pending updates or installs, to estimate whether a pull operation will fail due to running out of disk space.

Parameters

self

a FlatpakInstallation

 

out_bytes

Location to store the result.

[out]

error

Return location for a GError

 

Returns

TRUE on success, or FALSE on error.

Since: 1.1

flatpak_installation_get_priority ()

gint
flatpak_installation_get_priority (FlatpakInstallation *self);

Returns the numeric priority of the installation for self .

Parameters

Returns

an integer with the configured priority value

Since: 0.8

flatpak_installation_get_storage_type ()

FlatpakStorageType
flatpak_installation_get_storage_type (FlatpakInstallation *self);

Returns the type of storage of the installation for self .

Parameters

Since: 0.8

flatpak_installation_set_no_interaction ()

void
flatpak_installation_set_no_interaction
                               (FlatpakInstallation *self,
                                gboolean no_interaction);

This method can be used to prevent interactive authorization dialogs to appear for operations on self . This is useful for background operations that are not directly triggered by a user action.

By default, interaction is allowed.

Parameters

self

a FlatpakInstallation

 

no_interaction

Whether to disallow interactive authorization for operations

 

Since: 1.1.1

flatpak_installation_get_no_interaction ()

gboolean
flatpak_installation_get_no_interaction
                               (FlatpakInstallation *self);

Returns the value set with flatpak_installation_set_no_interaction().

Parameters

Returns

TRUE if interactive authorization dialogs are not allowed

Since: 1.1.1

flatpak_installation_list_installed_refs ()

GPtrArray *
flatpak_installation_list_installed_refs
                               (FlatpakInstallation *self,
                                GCancellable *cancellable,
                                GError **error);

Lists the installed references.

Parameters

self

a FlatpakInstallation

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a GPtrArray of FlatpakInstalledRef instances.

[transfer container][element-type FlatpakInstalledRef]

flatpak_installation_list_installed_refs_by_kind ()

GPtrArray *
flatpak_installation_list_installed_refs_by_kind
                               (FlatpakInstallation *self,
                                FlatpakRefKind kind,
                                GCancellable *cancellable,
                                GError **error);

Lists the installed references of a specific kind.

Parameters

self

a FlatpakInstallation

 

kind

the kind of installation

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a GPtrArray of FlatpakInstalledRef instances.

[transfer container][element-type FlatpakInstalledRef]

flatpak_installation_list_installed_refs_for_update ()

GPtrArray *
flatpak_installation_list_installed_refs_for_update
                               (FlatpakInstallation *self,
                                GCancellable *cancellable,
                                GError **error);

Lists the installed apps and runtimes that have an update available, either from the configured remote or locally available but not deployed (see flatpak_transaction_set_no_deploy()).

This also checks if any of FlatpakInstalledRef has a missing FlatpakRelatedRef (which has should-download set to TRUE) or runtime. If so, it adds the ref to the returning GPtrArray to pull in the FlatpakRelatedRef or runtime again via an update operation in FlatpakTransaction.

In case more than one app needs an update of the same runtime or extension, this function will return all of those apps.

Parameters

self

a FlatpakInstallation

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a GPtrArray of FlatpakInstalledRef instances, or NULL on error.

[transfer container][element-type FlatpakInstalledRef]

flatpak_installation_list_installed_related_refs_sync ()

GPtrArray *
flatpak_installation_list_installed_related_refs_sync
                               (FlatpakInstallation *self,
                                const char *remote_name,
                                const char *ref,
                                GCancellable *cancellable,
                                GError **error);

Lists all the locally installed refs from remote_name that are related to ref . These are things that are interesting to install, update, or uninstall together with ref . For instance, locale data or debug information.

This function is similar to flatpak_installation_list_remote_related_refs_sync, but instead of looking at what is available on the remote, it only looks at the locally installed refs. This is useful for instance when you're looking for related refs to uninstall, or when you're planning to use FLATPAK_UPDATE_FLAGS_NO_PULL to install previously pulled refs.

Parameters

self

a FlatpakInstallation

 

remote_name

the name of the remote

 

ref

the ref

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a GPtrArray of FlatpakRelatedRef instances.

[transfer container][element-type FlatpakRelatedRef]

Since: 0.6.7

flatpak_installation_list_unused_refs ()

GPtrArray *
flatpak_installation_list_unused_refs (FlatpakInstallation *self,
                                       const char *arch,
                                       GCancellable *cancellable,
                                       GError **error);

Lists the installed references that are not 'used'.

A reference is used if it is either an application, or the runtime or sdk of a used ref, or an extension of a used ref. Pinned runtimes are also considered used; see flatpak-pin(1) and flatpak_installation_list_pinned_refs().

Parameters

self

a FlatpakInstallation

 

arch

if non-NULL, the architecture of refs to collect.

[nullable]

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a GPtrArray of FlatpakInstalledRef instances.

[transfer container][element-type FlatpakInstalledRef]

Since: 1.1.2

flatpak_installation_list_remote_refs_sync ()

GPtrArray *
flatpak_installation_list_remote_refs_sync
                               (FlatpakInstallation *self,
                                const char *remote_or_uri,
                                GCancellable *cancellable,
                                GError **error);

Lists all the applications and runtimes in a remote.

Parameters

self

a FlatpakInstallation

 

remote_or_uri

the name or URI of the remote

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a GPtrArray of FlatpakRemoteRef instances.

[transfer container][element-type FlatpakRemoteRef]

flatpak_installation_list_remote_refs_sync_full ()

GPtrArray *
flatpak_installation_list_remote_refs_sync_full
                               (FlatpakInstallation *self,
                                const char *remote_or_uri,
                                FlatpakQueryFlags flags,
                                GCancellable *cancellable,
                                GError **error);

Lists all the applications and runtimes in a remote.

Parameters

self

a FlatpakInstallation

 

remote_or_uri

the name or URI of the remote

 

flags

set of FlatpakQueryFlags

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a GPtrArray of FlatpakRemoteRef instances.

[transfer container][element-type FlatpakRemoteRef]

Since: 1.3.3

flatpak_installation_list_remotes_by_type ()

GPtrArray *
flatpak_installation_list_remotes_by_type
                               (FlatpakInstallation *self,
                                const FlatpakRemoteType types[],
                                gsize num_types,
                                GCancellable *cancellable,
                                GError **error);

Lists only the remotes whose type is included in the types argument.

Since flatpak 1.7 this will never return any types except FLATPAK_REMOTE_TYPE_STATIC. Equivalent functionallity to FLATPAK_REMOTE_TYPE_USB can be had by listing remote refs with FLATPAK_QUERY_FLAGS_ONLY_SIDELOADED.

Parameters

self

a FlatpakInstallation

 

types

an array of FlatpakRemoteType.

[array length=num_types]

num_types

the number of types provided in types

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a GPtrArray of FlatpakRemote instances.

[transfer container][element-type FlatpakRemote]

flatpak_installation_list_remote_related_refs_sync ()

GPtrArray *
flatpak_installation_list_remote_related_refs_sync
                               (FlatpakInstallation *self,
                                const char *remote_name,
                                const char *ref,
                                GCancellable *cancellable,
                                GError **error);

Lists all the available refs on remote_name that are related to ref , and the subpaths to use. These are things that are interesting to install, update, or uninstall together with ref . For instance, locale data or debug information.

The returned list contains all available related refs, but not every one should always be installed. For example, flatpak_related_ref_should_download() returns TRUE if the reference should be installed/updated with the app, and flatpak_related_ref_should_delete() returns TRUE if it should be uninstalled with the main ref.

The commit property of each FlatpakRelatedRef is not guaranteed to be non-NULL.

Parameters

self

a FlatpakInstallation

 

remote_name

the name of the remote

 

ref

the ref

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a GPtrArray of FlatpakRelatedRef instances.

[transfer container][element-type FlatpakRelatedRef]

Since: 0.6.7

flatpak_installation_list_remotes ()

GPtrArray *
flatpak_installation_list_remotes (FlatpakInstallation *self,
                                   GCancellable *cancellable,
                                   GError **error);

Lists the static remotes, in priority (highest first) order. For same priority, an earlier added remote comes before a later added one.

Parameters

self

a FlatpakInstallation

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a GPtrArray of FlatpakRemote instances.

[transfer container][element-type FlatpakRemote]

flatpak_installation_get_remote_by_name ()

FlatpakRemote *
flatpak_installation_get_remote_by_name
                               (FlatpakInstallation *self,
                                const gchar *name,
                                GCancellable *cancellable,
                                GError **error);

Looks up a remote by name.

Parameters

self

a FlatpakInstallation

 

name

a remote name

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a FlatpakRemote instance, or NULL with error set.

[transfer full]

flatpak_installation_fetch_remote_metadata_sync ()

GBytes *
flatpak_installation_fetch_remote_metadata_sync
                               (FlatpakInstallation *self,
                                const char *remote_name,
                                FlatpakRef *ref,
                                GCancellable *cancellable,
                                GError **error);

Obtains the metadata file from a commit.

NOTE: Since 0.11.4 this information is accessible in FlatpakRemoteRef, so this function is not very useful anymore.

Parameters

self

a FlatpakInstallation

 

remote_name

the name of the remote

 

ref

the ref

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a GBytes containing the flatpak metadata file, or NULL if an error occurred.

[transfer full]

flatpak_installation_fetch_remote_ref_sync ()

FlatpakRemoteRef *
flatpak_installation_fetch_remote_ref_sync
                               (FlatpakInstallation *self,
                                const char *remote_name,
                                FlatpakRefKind kind,
                                const char *name,
                                const char *arch,
                                const char *branch,
                                GCancellable *cancellable,
                                GError **error);

Gets the current remote branch of a ref in the remote.

Parameters

self

a FlatpakInstallation

 

remote_name

the name of the remote

 

kind

what this ref contains (an FlatpakRefKind)

 

name

name of the app/runtime to fetch

 

arch

which architecture to fetch (default: current architecture).

[nullable]

branch

which branch to fetch (default: 'master').

[nullable]

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a FlatpakRemoteRef instance, or NULL.

[transfer full]

flatpak_installation_fetch_remote_ref_sync_full ()

FlatpakRemoteRef *
flatpak_installation_fetch_remote_ref_sync_full
                               (FlatpakInstallation *self,
                                const char *remote_name,
                                FlatpakRefKind kind,
                                const char *name,
                                const char *arch,
                                const char *branch,
                                FlatpakQueryFlags flags,
                                GCancellable *cancellable,
                                GError **error);

Gets the current remote branch of a ref in the remote.

Parameters

self

a FlatpakInstallation

 

remote_name

the name of the remote

 

kind

what this ref contains (an FlatpakRefKind)

 

name

name of the app/runtime to fetch

 

arch

which architecture to fetch (default: current architecture).

[nullable]

branch

which branch to fetch (default: 'master').

[nullable]

flags

set of FlatpakQueryFlags

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a FlatpakRemoteRef instance, or NULL.

[transfer full]

Since: 1.3.3

flatpak_installation_fetch_remote_size_sync ()

gboolean
flatpak_installation_fetch_remote_size_sync
                               (FlatpakInstallation *self,
                                const char *remote_name,
                                FlatpakRef *ref,
                                guint64 *download_size,
                                guint64 *installed_size,
                                GCancellable *cancellable,
                                GError **error);

Gets information about the maximum amount of data that needs to be transferred to pull the ref from a remote repository, and about the amount of local disk space that is required to check out this commit.

Note that if there are locally available data that are in the ref, which is common for instance if you're doing an update then the real download size may be smaller than what is returned here.

NOTE: Since 0.11.4 this information is accessible in FlatpakRemoteRef, so this function is not very useful anymore.

Parameters

self

a FlatpakInstallation

 

remote_name

the name of the remote

 

ref

the ref

 

download_size

return location for the (maximum) download size.

[out]

installed_size

return location for the installed size.

[out]

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE, unless an error occurred

flatpak_installation_load_app_overrides ()

char *
flatpak_installation_load_app_overrides
                               (FlatpakInstallation *self,
                                const char *app_id,
                                GCancellable *cancellable,
                                GError **error);

Loads the metadata overrides file for an application.

Parameters

self

a FlatpakInstallation

 

app_id

an application id

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

the contents of the overrides files, or NULL if an error occurred.

[transfer full]

flatpak_installation_update_appstream_sync ()

gboolean
flatpak_installation_update_appstream_sync
                               (FlatpakInstallation *self,
                                const char *remote_name,
                                const char *arch,
                                gboolean *out_changed,
                                GCancellable *cancellable,
                                GError **error);

Updates the local copy of appstream for remote_name for the specified arch . If you need progress feedback, use flatpak_installation_update_appstream_full_sync().

Parameters

self

a FlatpakInstallation

 

remote_name

the name of the remote

 

arch

Architecture to update, or NULL for the local machine arch.

[nullable]

out_changed

Set to TRUE if the contents of the appstream changed, FALSE if nothing changed.

[nullable]

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE on success, or FALSE on error

flatpak_installation_install_bundle ()

FlatpakInstalledRef *
flatpak_installation_install_bundle (FlatpakInstallation *self,
                                     GFile *file,
                                     FlatpakProgressCallback progress,
                                     gpointer progress_data,
                                     GCancellable *cancellable,
                                     GError **error);

Warning

flatpak_installation_install_bundle has been deprecated since version 1.7.0 and should not be used in newly-written code.

Use flatpak_transaction_add_install_bundle() instead.

This is an old deprecated function, you should use FlatpakTransaction and flatpak_transaction_add_install_bundle() instead. It has a lot more interesting features.

Install an application or runtime from an flatpak bundle file. See flatpak-build-bundle(1) for how to create bundles.

Parameters

self

a FlatpakInstallation

 

file

a GFile that is an flatpak bundle

 

progress

progress callback.

[scope call][nullable]

progress_data

user data passed to progress .

[closure progress][nullable]

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

The ref for the newly installed app or NULL on failure.

[transfer full]

flatpak_installation_install_ref_file ()

FlatpakRemoteRef *
flatpak_installation_install_ref_file (FlatpakInstallation *self,
                                       GBytes *ref_file_data,
                                       GCancellable *cancellable,
                                       GError **error);

Warning

flatpak_installation_install_ref_file has been deprecated since version 1.7.0 and should not be used in newly-written code.

Use flatpak_transaction_add_install_flatpakref() instead.

This is an old deprecated function, you should use FlatpakTransaction and flatpak_transaction_add_install_flatpakref() instead. It has a lot more interesting features.

Creates a remote based on the passed in .flatpakref file contents in ref_file_data and returns the FlatpakRemoteRef that can be used to install it.

Note, the FlatpakRemoteRef will not have the commit field set, or other details, to avoid unnecessary roundtrips. If you need that you have to resolve it explicitly with flatpak_installation_fetch_remote_ref_sync().

Parameters

self

a FlatpakInstallation

 

ref_file_data

The ref file contents

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a FlatpakRemoteRef if the remote has been added successfully, NULL on error.

[transfer full]

Since: 0.6.10

flatpak_installation_drop_caches ()

gboolean
flatpak_installation_drop_caches (FlatpakInstallation *self,
                                  GCancellable *cancellable,
                                  GError **error);

Drops all internal (in-memory) caches. For instance, this may be needed to pick up new or changed remotes configured outside this installation instance.

Parameters

self

a FlatpakInstallation

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE on success, FALSE on error

flatpak_installation_add_remote ()

gboolean
flatpak_installation_add_remote (FlatpakInstallation *self,
                                 FlatpakRemote *remote,
                                 gboolean if_needed,
                                 GCancellable *cancellable,
                                 GError **error);

Adds a new remote object to the set of remotes. This is similar to flatpak_installation_modify_remote() for non-existing remote names. However, if the named remote already exists then instead of modifying it it fails with FLATPAK_ERROR_ALREADY_INSTALLED, or if if_needed is true it silently succeeds without doing anything.

As an exception to the last, if the local config has a filter defined, but the new remote unsets the filter (for example, it comes from an unfiltered .flatpakref via flatpak_remote_new_from_file()) the the local remote filter gets reset. This is to allow the setup where there is a default setup of a filtered remote, yet you can still use the standard flatpakref file to get the full contents without getting two remotes.

Parameters

self

a FlatpakInstallation

 

remote

the new FlatpakRemote

 

if_needed

if TRUE, only add if it doesn't exists

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE if the modifications have been committed successfully

Since: 1.3.4

flatpak_installation_modify_remote ()

gboolean
flatpak_installation_modify_remote (FlatpakInstallation *self,
                                    FlatpakRemote *remote,
                                    GCancellable *cancellable,
                                    GError **error);

Saves changes in the remote object.

Parameters

self

a FlatpakInstallation

 

remote

the modified FlatpakRemote

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE if the modifications have been committed successfully

flatpak_installation_remove_remote ()

gboolean
flatpak_installation_remove_remote (FlatpakInstallation *self,
                                    const char *name,
                                    GCancellable *cancellable,
                                    GError **error);

Removes the remote with the given name from the installation.

Parameters

self

a FlatpakInstallation

 

name

the name of the remote to remove

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE if the remote has been removed successfully

flatpak_installation_update_remote_sync ()

gboolean
flatpak_installation_update_remote_sync
                               (FlatpakInstallation *self,
                                const char *name,
                                GCancellable *cancellable,
                                GError **error);

Updates the local configuration of a remote repository by fetching the related information from the summary file in the remote OSTree repository and committing the changes to the local installation.

Parameters

self

a FlatpakInstallation

 

name

the name of the remote to update

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE if the remote has been updated successfully

Since: 0.6.13

flatpak_installation_cleanup_local_refs_sync ()

gboolean
flatpak_installation_cleanup_local_refs_sync
                               (FlatpakInstallation *self,
                                GCancellable *cancellable,
                                GError **error);

Remove all OSTree refs from the local flatpak repository which are not in a deployed state. The next time the underlying OSTree repo is pruned, objects which were attached to that ref will be removed. This is useful if you pulled a flatpak refs using flatpak_installation_install_full() and specified FLATPAK_INSTALL_FLAGS_NO_DEPLOY but then decided not to deploy the refs later on and want to remove the local refs to prevent them from taking up disk space. Note that this will not remove the objects referred to by ref from the underlying OSTree repo, you should use flatpak_installation_prune_local_repo() to do that.

Parameters

self

a FlatpakInstallation

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE on success

Since: 0.10.0

flatpak_installation_get_config ()

char *
flatpak_installation_get_config (FlatpakInstallation *self,
                                 const char *key,
                                 GCancellable *cancellable,
                                 GError **error);

Get a global configuration option for the installation, see flatpak_installation_set_config_sync() for supported keys.

Parameters

self

a FlatpakInstallation

 

key

the name of the key to get

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

The (newly allocated) value, or NULL on error (G_KEY_FILE_ERROR_KEY_NOT_FOUND error if key is not set)

flatpak_installation_get_default_languages ()

char **
flatpak_installation_get_default_languages
                               (FlatpakInstallation *self,
                                GError **error);

Get the default languages used by the installation to decide which subpaths to install of locale extensions. This list may also be used by frontends like GNOME Software to decide which language-specific apps to display. An empty array means that all languages should be installed.

Parameters

self

a FlatpakInstallation

 

error

return location for a GError

 

Returns

A possibly empty array of strings, or NULL on error.

[array zero-terminated=1][element-type utf8][transfer full]

Since: 1.5.0

flatpak_installation_get_default_locales ()

char **
flatpak_installation_get_default_locales
                               (FlatpakInstallation *self,
                                GError **error);

Like flatpak_installation_get_default_languages() but includes territory information (e.g. en_US rather than en) which may be included in the extra-languages configuration.

Strings returned by this function are in the format specified by setlocale(): language[_territory][.codeset][@modifier].

Parameters

self

a FlatpakInstallation

 

error

return location for a GError

 

Returns

A possibly empty array of locale strings, or NULL on error.

[array zero-terminated=1][element-type utf8][transfer full]

Since: 1.5.1

flatpak_installation_prune_local_repo ()

gboolean
flatpak_installation_prune_local_repo (FlatpakInstallation *self,
                                       GCancellable *cancellable,
                                       GError **error);

Remove all orphaned OSTree objects from the underlying OSTree repo in self .

Parameters

self

a FlatpakInstallation

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE on success

Since: 0.10.0

flatpak_installation_remove_local_ref_sync ()

gboolean
flatpak_installation_remove_local_ref_sync
                               (FlatpakInstallation *self,
                                const char *remote_name,
                                const char *ref,
                                GCancellable *cancellable,
                                GError **error);

Remove the OSTree ref given by remote_name :ref from the local flatpak repository. The next time the underlying OSTree repo is pruned, objects which were attached to that ref will be removed. This is useful if you pulled a flatpak ref using flatpak_installation_install_full() and specified FLATPAK_INSTALL_FLAGS_NO_DEPLOY but then decided not to deploy the ref later on and want to remove the local ref to prevent it from taking up disk space. Note that this will not remove the objects referred to by ref from the underlying OSTree repo, you should use flatpak_installation_prune_local_repo() to do that.

Parameters

self

a FlatpakInstallation

 

remote_name

the name of the remote

 

ref

the ref

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE on success

Since: 0.10.0

flatpak_installation_set_config_sync ()

gboolean
flatpak_installation_set_config_sync (FlatpakInstallation *self,
                                      const char *key,
                                      const char *value,
                                      GCancellable *cancellable,
                                      GError **error);

Set a global configuration option for the installation, currently the only supported keys are languages, which is a semicolon-separated list of language codes like "sv;en;pl", or "" to mean all languages, and extra-languages, which is a semicolon-separated list of locale identifiers like "en;en_DK;zh_HK.big5hkscs;uz_UZ.utf8@cyrillic".

Parameters

self

a FlatpakInstallation

 

key

the name of the key to set

 

value

the new value, or NULL to unset

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE if the option was set correctly

flatpak_installation_update_appstream_full_sync ()

gboolean
flatpak_installation_update_appstream_full_sync
                               (FlatpakInstallation *self,
                                const char *remote_name,
                                const char *arch,
                                FlatpakProgressCallback progress,
                                gpointer progress_data,
                                gboolean *out_changed,
                                GCancellable *cancellable,
                                GError **error);

Updates the local copy of appstream for remote_name for the specified arch .

Parameters

self

a FlatpakInstallation

 

remote_name

the name of the remote

 

arch

Architecture to update, or NULL for the local machine arch.

[nullable]

progress

progress callback.

[scope call][nullable]

progress_data

user data passed to progress .

[closure progress][nullable]

out_changed

Set to TRUE if the contents of the appstream changed, FALSE if nothing changed.

[nullable]

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE on success, or FALSE on error

flatpak_installation_run_triggers ()

gboolean
flatpak_installation_run_triggers (FlatpakInstallation *self,
                                   GCancellable *cancellable,
                                   GError **error);

Run the trigger commands to update the files exported by the apps in self . Should be used after one or more app install, upgrade or uninstall operations with the FLATPAK_INSTALL_FLAGS_NO_TRIGGERS, FLATPAK_UPDATE_FLAGS_NO_TRIGGERS or FLATPAK_UNINSTALL_FLAGS_NO_TRIGGERS flags set.

Parameters

self

a FlatpakInstallation

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

TRUE on success

Since: 1.0.3

flatpak_get_default_arch ()

const char *
flatpak_get_default_arch (void);

Returns the canonical name for the arch of the current machine.

Returns

an arch string

flatpak_get_supported_arches ()

const char *const *
flatpak_get_supported_arches (void);

Returns the canonical names for the arches that are supported (i.e. can run) on the current machine, in order of priority (default is first).

Returns

a zero terminated array of arch strings

flatpak_get_system_installations ()

GPtrArray *
flatpak_get_system_installations (GCancellable *cancellable,
                                  GError **error);

Lists the system installations according to the current configuration and current availability (e.g. doesn't return a configured installation if not reachable).

Parameters

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a GPtrArray of FlatpakInstallation instances.

[transfer container][element-type FlatpakInstallation]

Since: 0.8

FlatpakProgressCallback ()

void
(*FlatpakProgressCallback) (const char *status,
                            guint progress,
                            gboolean estimating,
                            gpointer user_data);

The progress callback is called repeatedly during long-running operations such as installations or updates, and can be used to update progress information in a user interface.

The callback occurs in the thread-default context of the caller.

Parameters

status

A status string, suitable for display

 

progress

percentage of completion

 

estimating

whether progress is just an estimate

 

user_data

User data passed to the caller

 

Types and Values

struct FlatpakInstallation

struct FlatpakInstallation;

enum FlatpakQueryFlags

Flags to alter the behavior of e.g flatpak_installation_list_remote_refs_sync_full().

Members

FLATPAK_QUERY_FLAGS_NONE

Default

 

FLATPAK_QUERY_FLAGS_ONLY_CACHED

Don't do any network i/o, but only return cached data. This can return stale data, or a FLATPAK_ERROR_NOT_CACHED error, however it is a lot more efficient if you're doing many requests.

 

FLATPAK_QUERY_FLAGS_ONLY_SIDELOADED

Only list refs available from sideload repos; see flatpak(1). (Snce: 1.7)

 

Since: 1.3.3

enum FlatpakUpdateFlags

Flags to alter the behavior of flatpak_installation_update().

Members

FLATPAK_UPDATE_FLAGS_NONE

Fetch remote builds and install the latest one (default)

 

FLATPAK_UPDATE_FLAGS_NO_DEPLOY

Don't install any new builds that might be fetched

 

FLATPAK_UPDATE_FLAGS_NO_PULL

Don't try to fetch new builds from the remote repo

 

FLATPAK_UPDATE_FLAGS_NO_STATIC_DELTAS

Don't use static deltas when pulling

 

FLATPAK_UPDATE_FLAGS_NO_PRUNE

Don't prune the local OSTree repository after updating (Since: 0.11.8)

 

FLATPAK_UPDATE_FLAGS_NO_TRIGGERS

Don't call triggers after updating. If used, the caller must later call flatpak_installation_run_triggers() to update the exported files. (Since: 1.0.3)

 

enum FlatpakInstallFlags

Flags to alter the behavior of flatpak_installation_install_full().

Members

FLATPAK_INSTALL_FLAGS_NONE

Default

 

FLATPAK_INSTALL_FLAGS_NO_STATIC_DELTAS

Don't use static deltas when pulling

 

FLATPAK_INSTALL_FLAGS_NO_DEPLOY

Don't install any new builds that might be fetched

 

FLATPAK_INSTALL_FLAGS_NO_PULL

Don't try to fetch new builds from the remote repo

 

FLATPAK_INSTALL_FLAGS_NO_TRIGGERS

Don't call triggers after installing. If used, the caller must later call flatpak_installation_run_triggers() to update the exported files. (Since: 1.0.3)

 

enum FlatpakUninstallFlags

Flags to alter the behavior of flatpak_installation_uninstall_full().

Members

FLATPAK_UNINSTALL_FLAGS_NONE

Default

 

FLATPAK_UNINSTALL_FLAGS_NO_PRUNE

Don't prune the local OSTree repository after uninstalling

 

FLATPAK_UNINSTALL_FLAGS_NO_TRIGGERS

Don't call triggers after uninstalling. If used, the caller must later call flatpak_installation_run_triggers() to update the exported file. (Since: 1.0.3)

 

Since: 0.11.8

enum FlatpakLaunchFlags

Flags to alter the behavior of flatpak_installation_launch_full().

Members

FLATPAK_LAUNCH_FLAGS_NONE

Default

 

FLATPAK_LAUNCH_FLAGS_DO_NOT_REAP

Do not reap the child. Use this if you want to wait for the child with g_child_watch_add(). (Snce: 1.1)

 

enum FlatpakStorageType

Information about the storage of an installation.

Members

FLATPAK_STORAGE_TYPE_DEFAULT

default

 

FLATPAK_STORAGE_TYPE_HARD_DISK

installation is on a hard disk

 

FLATPAK_STORAGE_TYPE_SDCARD

installation is on a SD card

 

FLATPAK_STORAGE_TYPE_MMC

installation is on an MMC

 

FLATPAK_STORAGE_TYPE_NETWORK

installation is on the network

 

Since: 0.6.15

See Also

FlatpakTransaction


Name

FlatpakRemote — Remote repository

Properties

gchar *nameRead / Write
FlatpakRemoteTypetypeRead / Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── FlatpakRemote

Description

A FlatpakRemote object provides information about a remote repository (or short: remote) that has been configured.

At its most basic level, a remote has a name and the URL for the repository. In addition, they provide some additional information that can be useful when presenting repositories in a UI, such as a title, a priority or a "don't enumerate" flags.

To obtain FlatpakRemote objects for the configured remotes on a system, use flatpak_installation_list_remotes() or flatpak_installation_get_remote_by_name().

Functions

flatpak_remote_new ()

FlatpakRemote *
flatpak_remote_new (const char *name);

Returns a new remote object which can be used to configure a new remote.

Note: This is a local configuration object, you must commit changes using flatpak_installation_modify_remote() or flatpak_installation_add_remote() for the changes to take effect.

Parameters

name

a name

 

Returns

a new FlatpakRemote.

[transfer full]

flatpak_remote_new_from_file ()

FlatpakRemote *
flatpak_remote_new_from_file (const char *name,
                              GBytes *data,
                              GError **error);

Returns a new pre-filled remote object which can be used to configure a new remote. The fields in the remote are filled in according to the values in the passed in flatpakrepo file.

Note: This is a local configuration object, you must commit changes using flatpak_installation_modify_remote() or flatpak_installation_add_remote() for the changes to take effect.

Parameters

name

a name

 

data

The content of a flatpakrepo file

 

error

return location for a GError

 

Returns

a new FlatpakRemote, or NULL on error.

[transfer full]

Since: 1.3.4

flatpak_remote_get_name ()

const char *
flatpak_remote_get_name (FlatpakRemote *self);

Returns the name of the remote repository.

Parameters

Returns

the name.

[transfer none]

flatpak_remote_get_appstream_dir ()

GFile *
flatpak_remote_get_appstream_dir (FlatpakRemote *self,
                                  const char *arch);

Returns the directory where this remote will store locally cached appstream information for the specified arch .

Parameters

self

a FlatpakRemote

 

arch

which architecture to fetch (default: current architecture).

[nullable]

Returns

a GFile.

[transfer full]

flatpak_remote_get_appstream_timestamp ()

GFile *
flatpak_remote_get_appstream_timestamp
                               (FlatpakRemote *self,
                                const char *arch);

Returns the timestamp file that will be updated whenever the appstream information has been updated (or tried to update) for the specified arch .

Parameters

self

a FlatpakRemote

 

arch

which architecture to fetch (default: current architecture).

[nullable]

Returns

a GFile.

[transfer full]

flatpak_remote_get_collection_id ()

char *
flatpak_remote_get_collection_id (FlatpakRemote *self);

Returns the repository collection ID of this remote, if set.

Parameters

Returns

the collection ID, or NULL if unset.

[transfer full][nullable]

flatpak_remote_set_collection_id ()

void
flatpak_remote_set_collection_id (FlatpakRemote *self,
                                  const char *collection_id);

Sets the repository collection ID of this remote.

Note: This is a local modification of this object, you must commit changes using flatpak_installation_modify_remote() for the changes to take effect.

Parameters

self

a FlatpakRemote

 

collection_id

The new collection ID, or NULL to unset.

[nullable]

flatpak_remote_get_default_branch ()

char *
flatpak_remote_get_default_branch (FlatpakRemote *self);

Returns the default branch configured for the remote.

Parameters

Returns

the default branch, or NULL.

[transfer full]

Since: 0.6.12

flatpak_remote_set_default_branch ()

void
flatpak_remote_set_default_branch (FlatpakRemote *self,
                                   const char *default_branch);

Sets the default branch configured for this remote.

Note: This is a local modification of this object, you must commit changes using flatpak_installation_modify_remote() for the changes to take effect.

Parameters

self

a FlatpakRemote

 

default_branch

The new default_branch, or NULL to unset

 

Since: 0.6.12

flatpak_remote_get_gpg_verify ()

gboolean
flatpak_remote_get_gpg_verify (FlatpakRemote *self);

Returns whether GPG verification is enabled for the remote.

Parameters

Returns

whether GPG verification is enabled

flatpak_remote_set_gpg_verify ()

void
flatpak_remote_set_gpg_verify (FlatpakRemote *self,
                               gboolean gpg_verify);

Sets the gpg_verify config of this remote. See flatpak_remote_get_gpg_verify().

Note: This is a local modification of this object, you must commit changes using flatpak_installation_modify_remote() for the changes to take effect.

Parameters

self

a FlatpakRemote

 

gpg_verify

a bool

 

flatpak_remote_set_gpg_key ()

void
flatpak_remote_set_gpg_key (FlatpakRemote *self,
                            GBytes *gpg_key);

Sets the trusted gpg key for this remote.

Note: This is a local modification of this object, you must commit changes using flatpak_installation_modify_remote() for the changes to take effect.

Parameters

self

a FlatpakRemote

 

gpg_key

a GBytes with gpg binary key data

 

flatpak_remote_get_nodeps ()

gboolean
flatpak_remote_get_nodeps (FlatpakRemote *self);

Returns whether this remote should be used to find dependencies.

Parameters

Returns

whether the remote is marked as "don't use for dependencies"

flatpak_remote_set_nodeps ()

void
flatpak_remote_set_nodeps (FlatpakRemote *self,
                           gboolean nodeps);

Sets the nodeps config of this remote. See flatpak_remote_get_nodeps().

Note: This is a local modification of this object, you must commit changes using flatpak_installation_modify_remote() for the changes to take effect.

Parameters

self

a FlatpakRemote

 

nodeps

a bool

 

flatpak_remote_get_noenumerate ()

gboolean
flatpak_remote_get_noenumerate (FlatpakRemote *self);

Returns whether this remote should be used to list applications.

Parameters

Returns

whether the remote is marked as "don't enumerate"

flatpak_remote_set_noenumerate ()

void
flatpak_remote_set_noenumerate (FlatpakRemote *self,
                                gboolean noenumerate);

Sets the noenumeration config of this remote. See flatpak_remote_get_noenumerate().

Note: This is a local modification of this object, you must commit changes using flatpak_installation_modify_remote() for the changes to take effect.

Parameters

self

a FlatpakRemote

 

noenumerate

a bool

 

flatpak_remote_get_prio ()

int
flatpak_remote_get_prio (FlatpakRemote *self);

Returns the priority for the remote.

Parameters

Returns

the priority

flatpak_remote_set_prio ()

void
flatpak_remote_set_prio (FlatpakRemote *self,
                         int prio);

Sets the prio config of this remote. See flatpak_remote_get_prio().

Note: This is a local modification of this object, you must commit changes using flatpak_installation_modify_remote() for the changes to take effect.

Parameters

self

a FlatpakRemote

 

prio

a bool

 

flatpak_remote_get_remote_type ()

FlatpakRemoteType
flatpak_remote_get_remote_type (FlatpakRemote *self);

Get the value of “type”.

Parameters

Returns

the type of remote this is

Since: 0.9.8

flatpak_remote_get_title ()

char *
flatpak_remote_get_title (FlatpakRemote *self);

Returns the title of the remote.

Parameters

Returns

the title.

[transfer full]

flatpak_remote_set_title ()

void
flatpak_remote_set_title (FlatpakRemote *self,
                          const char *title);

Sets the repository title of this remote.

Note: This is a local modification of this object, you must commit changes using flatpak_installation_modify_remote() for the changes to take effect.

Parameters

self

a FlatpakRemote

 

title

The new title, or NULL to unset

 

flatpak_remote_get_comment ()

char *
flatpak_remote_get_comment (FlatpakRemote *self);

Returns the comment of the remote.

Parameters

Returns

the comment.

[transfer full]

Since: 1.4

flatpak_remote_set_comment ()

void
flatpak_remote_set_comment (FlatpakRemote *self,
                            const char *comment);

Sets the comment of this remote.

Note: This is a local modification of this object, you must commit changes using flatpak_installation_modify_remote() for the changes to take effect.

Parameters

self

a FlatpakRemote

 

comment

The new comment

 

Since: 1.4

flatpak_remote_get_description ()

char *
flatpak_remote_get_description (FlatpakRemote *self);

Returns the description of the remote.

Parameters

Returns

the description.

[transfer full]

Since: 1.4

flatpak_remote_set_description ()

void
flatpak_remote_set_description (FlatpakRemote *self,
                                const char *description);

Sets the description of this remote.

Note: This is a local modification of this object, you must commit changes using flatpak_installation_modify_remote() for the changes to take effect.

Parameters

self

a FlatpakRemote

 

description

The new description

 

Since: 1.4

flatpak_remote_get_homepage ()

char *
flatpak_remote_get_homepage (FlatpakRemote *self);

Returns the homepage url of the remote.

Parameters

Returns

the homepage url.

[transfer full]

Since: 1.4

flatpak_remote_set_homepage ()

void
flatpak_remote_set_homepage (FlatpakRemote *self,
                             const char *homepage);

Sets the homepage of this remote.

Note: This is a local modification of this object, you must commit changes using flatpak_installation_modify_remote() for the changes to take effect.

Parameters

self

a FlatpakRemote

 

homepage

The new homepage

 

Since: 1.4

flatpak_remote_get_icon ()

char *
flatpak_remote_get_icon (FlatpakRemote *self);

Returns the icon url of the remote.

Parameters

Returns

the icon url.

[transfer full]

Since: 1.4

flatpak_remote_set_icon ()

void
flatpak_remote_set_icon (FlatpakRemote *self,
                         const char *icon);

Sets the homepage of this remote.

Note: This is a local modification of this object, you must commit changes using flatpak_installation_modify_remote() for the changes to take effect.

Parameters

self

a FlatpakRemote

 

icon

The new homepage

 

Since: 1.4

flatpak_remote_get_url ()

char *
flatpak_remote_get_url (FlatpakRemote *self);

Returns the repository URL of this remote.

Parameters

Returns

the URL.

[transfer full]

flatpak_remote_set_url ()

void
flatpak_remote_set_url (FlatpakRemote *self,
                        const char *url);

Sets the repository URL of this remote.

Note: This is a local modification of this object, you must commit changes using flatpak_installation_modify_remote() for the changes to take effect.

Parameters

self

a FlatpakRemote

 

url

The new url

 

flatpak_remote_get_disabled ()

gboolean
flatpak_remote_get_disabled (FlatpakRemote *self);

Returns whether this remote is disabled.

Parameters

Returns

whether the remote is marked as disabled

flatpak_remote_set_disabled ()

void
flatpak_remote_set_disabled (FlatpakRemote *self,
                             gboolean disabled);

Sets the disabled config of this remote. See flatpak_remote_get_disabled().

Note: This is a local modification of this object, you must commit changes using flatpak_installation_modify_remote() for the changes to take effect.

Parameters

self

a FlatpakRemote

 

disabled

a bool

 

flatpak_remote_get_filter ()

char *
flatpak_remote_get_filter (FlatpakRemote *self);

Returns the filter file of the remote.

Parameters

Returns

a pathname to a filter file.

[transfer full]

Since: 1.4

flatpak_remote_set_filter ()

void
flatpak_remote_set_filter (FlatpakRemote *self,
                           const char *filter_path);

Sets a filter for this remote.

Note: This is a local modification of this object, you must commit changes using flatpak_installation_modify_remote() for the changes to take effect.

Parameters

self

a FlatpakRemote

 

filter_path

The pathname of the new filter file

 

Since: 1.4

flatpak_remote_get_main_ref ()

char *
flatpak_remote_get_main_ref (FlatpakRemote *self);

Returns the main ref of this remote, if set. The main ref is the ref that an origin remote is created for.

Parameters

Returns

the main ref, or NULL.

[transfer full]

Since: 1.1.1

flatpak_remote_set_main_ref ()

void
flatpak_remote_set_main_ref (FlatpakRemote *self,
                             const char *main_ref);

Sets the main ref of this remote. The main ref is the ref that an origin remote is created for.

Note: This is a local modification of this object, you must commit changes using flatpak_installation_modify_remote() for the changes to take effect.

Parameters

self

a FlatpakRemote

 

main_ref

The new main ref

 

Since: 1.1.1

Types and Values

struct FlatpakRemote

struct FlatpakRemote;

enum FlatpakRemoteType

Different types of FlatpakRemote .

Members

FLATPAK_REMOTE_TYPE_STATIC

Statically configured remote

 

FLATPAK_REMOTE_TYPE_USB

Dynamically detected local pathname remote

 

FLATPAK_REMOTE_TYPE_LAN

Dynamically detected network remote

 

Property Details

The “name” property

  “name”                     gchar *

Name of the remote, as used in configuration files and when interfacing with OSTree. This is typically human readable, but could be generated, and must conform to ostree_validate_remote_name(). It should typically not be presented in the UI.

Owner: FlatpakRemote

Flags: Read / Write

Default value: NULL

The “type” property

  “type”                     FlatpakRemoteType

The type of the remote: whether it comes from static configuration files (FLATPAK_REMOTE_TYPE_STATIC ) or has been dynamically found from the local network or a mounted USB drive (FLATPAK_REMOTE_TYPE_LAN , FLATPAK_REMOTE_TYPE_USB ). Dynamic remotes may be added and removed over time.

Owner: FlatpakRemote

Flags: Read / Write / Construct Only

Default value: FLATPAK_REMOTE_TYPE_STATIC

Since: 0.9.8


Name

FlatpakTransactionOperation — Operation in a transaction

Types and Values

Object Hierarchy

    GObject
    ╰── FlatpakTransactionOperation

Description

FlatpakTransactionOperation is an object that represents a single operation in a transaction. You receive a FlatpakTransactionOperation object with the “new-operation” signal.

Functions

flatpak_transaction_operation_get_bundle_path ()

GFile *
flatpak_transaction_operation_get_bundle_path
                               (FlatpakTransactionOperation *self);

Gets the path to the bundle.

Parameters

Returns

the bundle GFile or NULL.

[transfer none]

flatpak_transaction_operation_get_commit ()

const char *
flatpak_transaction_operation_get_commit
                               (FlatpakTransactionOperation *self);

Gets the commit ID for the operation.

This information is available when the transaction is resolved, i.e. when “ready” is emitted.

Parameters

Returns

the commit ID.

[transfer none]

flatpak_transaction_operation_get_operation_type ()

FlatpakTransactionOperationType
flatpak_transaction_operation_get_operation_type
                               (FlatpakTransactionOperation *self);

Gets the type of the operation.

Parameters

Returns

the type of operation, as FlatpakTransactionOperationType

flatpak_transaction_operation_get_ref ()

const char *
flatpak_transaction_operation_get_ref (FlatpakTransactionOperation *self);

Gets the ref that the operation applies to.

Parameters

Returns

the ref.

[transfer none]

flatpak_transaction_operation_get_remote ()

const char *
flatpak_transaction_operation_get_remote
                               (FlatpakTransactionOperation *self);

Gets the remote that the operation applies to.

Parameters

Returns

the remote.

[transfer none]

flatpak_transaction_operation_get_metadata ()

GKeyFile *
flatpak_transaction_operation_get_metadata
                               (FlatpakTransactionOperation *self);

Gets the metadata that will be applicable when the operation is done.

This can be compared to the current metadata returned by flatpak_transaction_operation_get_old_metadata() to find new required permissions and similar changes.

This information is available when the transaction is resolved, i.e. when “ready” is emitted.

Parameters

Returns

the metadata GKeyFile.

[transfer none]

flatpak_transaction_operation_get_old_metadata ()

GKeyFile *
flatpak_transaction_operation_get_old_metadata
                               (FlatpakTransactionOperation *self);

Gets the metadata current metadata for the ref that self works on. Also see flatpak_transaction_operation_get_metadata().

This information is available when the transaction is resolved, i.e. when “ready” is emitted.

Parameters

Returns

the old metadata GKeyFile.

[transfer none]

flatpak_transaction_operation_get_download_size ()

guint64
flatpak_transaction_operation_get_download_size
                               (FlatpakTransactionOperation *self);

Gets the maximum download size for the operation.

Note that this does not include the size of dependencies, and the actual download may be smaller, if some of the data is already available locally.

For uninstall operations, this returns 0.

This information is available when the transaction is resolved, i.e. when “ready” is emitted.

Parameters

Returns

the download size, in bytes

Since: 1.1.2

flatpak_transaction_operation_get_installed_size ()

guint64
flatpak_transaction_operation_get_installed_size
                               (FlatpakTransactionOperation *self);

Gets the installed size for the operation.

Note that even for a new install, the extra space required on disk may be smaller than this number, if some of the data is already available locally.

For uninstall operations, this returns 0.

This information is available when the transaction is resolved, i.e. when “ready” is emitted.

Parameters

Returns

the installed size, in bytes

Since: 1.1.2

flatpak_transaction_operation_type_to_string ()

const char *
flatpak_transaction_operation_type_to_string
                               (FlatpakTransactionOperationType kind);

Converts the operation type to a string.

Returns

a string representing kind .

[transfer none]

Types and Values

FlatpakTransactionOperation

typedef struct _FlatpakTransactionOperation FlatpakTransactionOperation;

Name

FlatpakTransactionProgress — Progress of an operation

Types and Values

Object Hierarchy

    GObject
    ╰── FlatpakTransactionProgress

Description

FlatpakTransactionProgress is an object that represents the progress of a single operation in a transaction. You obtain a FlatpakTransactionProgress with the “new-operation” signal.

Functions

flatpak_transaction_progress_get_is_estimating ()

gboolean
flatpak_transaction_progress_get_is_estimating
                               (FlatpakTransactionProgress *self);

Gets whether the progress is currently estimating

Parameters

Returns

whether we're estimating

flatpak_transaction_progress_get_progress ()

int
flatpak_transaction_progress_get_progress
                               (FlatpakTransactionProgress *self);

Gets the current progress.

Parameters

Returns

the current progress, as an integer between 0 and 100

flatpak_transaction_progress_get_status ()

char *
flatpak_transaction_progress_get_status
                               (FlatpakTransactionProgress *self);

Gets the current status string

Parameters

Returns

the current status.

[transfer full]

flatpak_transaction_progress_set_update_frequency ()

void
flatpak_transaction_progress_set_update_frequency
                               (FlatpakTransactionProgress *self,
                                guint update_interval);

Sets how often progress should be updated.

Parameters

self

a FlatpakTransactionProgress

 

update_interval

the update interval, in milliseconds

 

flatpak_transaction_progress_get_bytes_transferred ()

guint64
flatpak_transaction_progress_get_bytes_transferred
                               (FlatpakTransactionProgress *self);

Gets the number of bytes that have been transferred.

Parameters

Returns

the number of bytes transferred

Since: 1.1.2

flatpak_transaction_progress_get_start_time ()

guint64
flatpak_transaction_progress_get_start_time
                               (FlatpakTransactionProgress *self);

Gets the time at which this operation has started, as monotonic time.

Parameters

Returns

the start time

Since: 1.1.2

Types and Values

FlatpakTransactionProgress

typedef struct _FlatpakTransactionProgress FlatpakTransactionProgress;

Signal Details

The “changed” signal

void
user_function (FlatpakTransactionProgress *object,
               gpointer                    user_data)

Emitted when some detail of the progress object changes, you can call the various methods to get the current status.

Parameters

object

A FlatpakTransactionProgress

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


Name

FlatpakTransaction — Transaction information

Properties

FlatpakInstallation *installationRead / Write / Construct Only

Object Hierarchy

    GObject
    ╰── FlatpakTransaction

Implemented Interfaces

FlatpakTransaction implements GInitable.

Description

FlatpakTransaction is an object representing an install/update/uninstall transaction. You create an object like this using flatpak_transaction_new_for_installation() and then you add all the operations (installs, updates, etc) you wish to do. Then you start the transaction with flatpak_transaction_run() which will resolve all kinds of dependencies and report progress and status while downloading and installing these.

The dependency resolution that is the first step of executing a transaction can be influenced by flatpak_transaction_set_disable_dependencies(), flatpak_transaction_set_disable_related(), flatpak_transaction_add_dependency_source() and flatpak_transaction_add_default_dependency_sources().

The underlying operations that get orchestrated by a FlatpakTransaction are: pulling new data from remote repositories, deploying newer applications or runtimes and pruning old deployments. Which of these operations are carried out can be controlled with flatpak_transaction_set_no_pull(), flatpak_transaction_set_no_deploy() and flatpak_transaction_set_disable_prune().

A transaction is a blocking operation, and all signals are emitted in the same thread. This means you should either handle the signals directly (say, by doing blocking console interaction, or by just returning without interaction), or run the operation in a separate thread and do your own forwarding to the GUI thread.

Despite the name, a FlatpakTransaction is more like a batch operation than a transaction in the database sense. Individual operations are carried out sequentially, and are atomic. They become visible to the system as they are completed. When an error occurs, already completed operations are not rolled back.

For each operation that is executed during a transaction, you first get a “new-operation” signal, followed by either a “operation-done” or “operation-error”.

The FlatpakTransaction API is threadsafe in the sense that it is safe to run two transactions at the same time, in different threads (or processes).

Note: Transactions (or any other install/update operation) to a system installation rely on the ability to create files that are readable by other users. Some users set a umask that prohibits this. Unfortunately there is no good way to work around this in a threadsafe, local way, so such setups will break by default. The flatpak commandline app works around this by calling umask(022) in the early setup, and it is recommended that other apps using libflatpak do this too.

Functions

flatpak_transaction_new_for_installation ()

FlatpakTransaction *
flatpak_transaction_new_for_installation
                               (FlatpakInstallation *installation,
                                GCancellable *cancellable,
                                GError **error);

Creates a new FlatpakTransaction object that can be used to do installation and updates of multiple refs, as well as their dependencies, in a single operation. Set the options you want on the transaction and add the refs you want to install/update, then start the transaction with flatpak_transaction_run().

Parameters

installation

a FlatpakInstallation

 

cancellable

a GCancellable.

[nullable]

error

return location for a GError

 

Returns

a FlatpakTransaction, or NULL on failure.

[transfer full]

flatpak_transaction_add_install ()

gboolean
flatpak_transaction_add_install (FlatpakTransaction *self,
                                 const char *remote,
                                 const char *ref,
                                 const char **subpaths,
                                 GError **error);

Adds installing the given ref to this transaction.

The remote can either be a configured remote of the installation, or a file:// uri pointing at a local repository to install from, in which case an origin remote is created.

Parameters

self

a FlatpakTransaction

 

remote

the name of the remote

 

ref

the ref

 

subpaths

subpaths to install, or the empty list or NULL to pull all subpaths.

[nullable][array zero-terminated=1]

error

return location for a GError

 

Returns

TRUE on success; FALSE with error set on failure.

flatpak_transaction_add_install_bundle ()

gboolean
flatpak_transaction_add_install_bundle
                               (FlatpakTransaction *self,
                                GFile *file,
                                GBytes *gpg_data,
                                GError **error);

Adds installing the given bundle to this transaction.

Parameters

self

a FlatpakTransaction

 

file

a GFile that is an flatpak bundle

 

gpg_data

GPG key with which to check bundle signatures, or NULL to use the key embedded in the bundle (if any).

[nullable]

error

return location for a GError

 

Returns

TRUE on success; FALSE with error set on failure.

flatpak_transaction_add_install_flatpakref ()

gboolean
flatpak_transaction_add_install_flatpakref
                               (FlatpakTransaction *self,
                                GBytes *flatpakref_data,
                                GError **error);

Adds installing the given flatpakref to this transaction.

Parameters

self

a FlatpakTransaction

 

flatpakref_data

data from a flatpakref file

 

error

return location for a GError

 

Returns

TRUE on success; FALSE with error set on failure.

flatpak_transaction_add_rebase ()

gboolean
flatpak_transaction_add_rebase (FlatpakTransaction *self,
                                const char *remote,
                                const char *ref,
                                const char **subpaths,
                                const char **previous_ids,
                                GError **error);

Adds updating the previous_ids of the given ref to this transaction, via either installing the ref if it was not already present. The will treat ref as the result of following an eol-rebase, and data migration from the refs in previous_ids will be set up.

See flatpak_transaction_add_install() for a description of remote .

Parameters

self

a FlatpakTransaction

 

remote

the name of the remote

 

ref

the ref

 

subpaths

the subpaths to include, or NULL to install the complete ref.

[nullable]

previous_ids

Previous ids to add to the given ref. These should simply be the ids, not the full ref names (e.g. org.foo.Bar, not org.foo.Bar/x86_64/master).

[nullable][array zero-terminated=1]

error

return location for a GError

 

Returns

TRUE on success; FALSE with error set on failure.

Since: 1.3.3.

flatpak_transaction_add_update ()

gboolean
flatpak_transaction_add_update (FlatpakTransaction *self,
                                const char *ref,
                                const char **subpaths,
                                const char *commit,
                                GError **error);

Adds updating the given ref to this transaction.

Parameters

self

a FlatpakTransaction

 

ref

the ref

 

subpaths

subpaths to install; NULL to use the current set plus the set of configured languages, or { "", NULL } to pull all subpaths.

[nullable][array zero-terminated=1]

commit

the commit to update to, or NULL to use the latest.

[nullable]

error

return location for a GError

 

Returns

TRUE on success; FALSE with error set on failure.

flatpak_transaction_add_uninstall ()

gboolean
flatpak_transaction_add_uninstall (FlatpakTransaction *self,
                                   const char *ref,
                                   GError **error);

Adds uninstalling the given ref to this transaction.

Parameters

self

a FlatpakTransaction

 

ref

the ref

 

error

return location for a GError

 

Returns

TRUE on success; FALSE with error set on failure.

flatpak_transaction_add_default_dependency_sources ()

void
flatpak_transaction_add_default_dependency_sources
                               (FlatpakTransaction *self);

Similar to flatpak_transaction_add_dependency_source(), but adds all the default installations, which means all the defined system-wide (but not per-user) installations.

Parameters

flatpak_transaction_add_dependency_source ()

void
flatpak_transaction_add_dependency_source
                               (FlatpakTransaction *self,
                                FlatpakInstallation *installation);

Adds an extra installation as a source for application dependencies. This means that applications can be installed in this transaction relying on runtimes from this additional installation (whereas it would normally install required runtimes that are not installed in the installation the transaction works on).

Also see flatpak_transaction_add_default_dependency_sources().

Parameters

flatpak_transaction_run ()

gboolean
flatpak_transaction_run (FlatpakTransaction *transaction,
                         GCancellable *cancellable,
                         GError **error);

Executes the transaction.

During the course of the execution, various signals will get emitted. The FlatpakTransaction::choose-remote-for-ref and “add-new-remote” signals may get emitted while resolving operations. “ready” is emitted when the transaction has been fully resolved, and “new-operation” and “operation-done” are emitted while the operations are carried out. If an error occurs at any point during the execution, “operation-error” is emitted.

Note that this call blocks until the transaction is done.

Parameters

transaction

a FlatpakTransaction

 

cancellable

a GCancellable.

[nullable]

error

return location for an error

 

Returns

TRUE on success, FALSE if an error occurred

flatpak_transaction_get_current_operation ()

FlatpakTransactionOperation *
flatpak_transaction_get_current_operation
                               (FlatpakTransaction *self);

Gets the current operation.

Parameters

Returns

the current FlatpakTransactionOperation.

[transfer full]

flatpak_transaction_get_installation ()

FlatpakInstallation *
flatpak_transaction_get_installation (FlatpakTransaction *self);

Gets the installation this transaction was created for.

Parameters

Returns

a FlatpakInstallation.

[transfer full]

flatpak_transaction_get_operations ()

GList *
flatpak_transaction_get_operations (FlatpakTransaction *self);

Gets the list of operations. Skipped operations are not included. The order of the list is the order in which the operations are executed.

Parameters

Returns

a GList of operations.

[transfer full][element-type FlatpakTransactionOperation]

flatpak_transaction_is_empty ()

gboolean
flatpak_transaction_is_empty (FlatpakTransaction *self);

Returns whether the transaction contains any non-skipped operations.

Parameters

Returns

TRUE if the transaction is empty

flatpak_transaction_set_disable_dependencies ()

void
flatpak_transaction_set_disable_dependencies
                               (FlatpakTransaction *self,
                                gboolean disable_dependencies);

Sets whether the transaction should ignore runtime dependencies when resolving operations for applications.

Parameters

self

a FlatpakTransaction

 

disable_dependencies

whether to disable runtime dependencies

 

flatpak_transaction_set_disable_prune ()

void
flatpak_transaction_set_disable_prune (FlatpakTransaction *self,
                                       gboolean disable_prune);

Sets whether the transaction should avoid pruning the local OSTree repository after updating.

Parameters

self

a FlatpakTransaction

 

disable_prune

whether to avoid pruning

 

flatpak_transaction_set_disable_related ()

void
flatpak_transaction_set_disable_related
                               (FlatpakTransaction *self,
                                gboolean disable_related);

Sets whether the transaction should avoid adding related refs when resolving operations. Related refs are extensions that are suggested by apps, such as locales.

Parameters

self

a FlatpakTransaction

 

disable_related

whether to avoid adding related refs

 

flatpak_transaction_set_disable_static_deltas ()

void
flatpak_transaction_set_disable_static_deltas
                               (FlatpakTransaction *self,
                                gboolean disable_static_deltas);

Sets whether the transaction should avoid using static deltas when pulling.

Parameters

self

a FlatpakTransaction

 

disable_static_deltas

whether to avoid static deltas

 

flatpak_transaction_set_no_deploy ()

void
flatpak_transaction_set_no_deploy (FlatpakTransaction *self,
                                   gboolean no_deploy);

Sets whether the transaction should download updates, but not deploy them.

Parameters

self

a FlatpakTransaction

 

no_deploy

whether to avoid deploying

 

flatpak_transaction_get_no_deploy ()

gboolean
flatpak_transaction_get_no_deploy (FlatpakTransaction *self);

Gets whether the transaction is only downloading updates, and not deploying them.

Parameters

Returns

TRUE if no_deploy is set, FALSE otherwise

Since: 1.5.1

flatpak_transaction_set_no_pull ()

void
flatpak_transaction_set_no_pull (FlatpakTransaction *self,
                                 gboolean no_pull);

Sets whether the transaction should operate only on locally available data.

Parameters

self

a FlatpakTransaction

 

no_pull

whether to avoid pulls

 

flatpak_transaction_get_no_pull ()

gboolean
flatpak_transaction_get_no_pull (FlatpakTransaction *self);

Gets whether the transaction should operate only on locally available data.

Parameters

Returns

TRUE if no_pull is set, FALSE otherwise

Since: 1.5.1

flatpak_transaction_set_reinstall ()

void
flatpak_transaction_set_reinstall (FlatpakTransaction *self,
                                   gboolean reinstall);

Sets whether the transaction should uninstall first if a ref is already installed.

Parameters

self

a FlatpakTransaction

 

reinstall

whether to reinstall refs

 

flatpak_transaction_set_force_uninstall ()

void
flatpak_transaction_set_force_uninstall
                               (FlatpakTransaction *self,
                                gboolean force_uninstall);

Sets whether the transaction should uninstall files even if they're used by a running application.

Parameters

self

a FlatpakTransaction

 

force_uninstall

whether to force-uninstall refs

 

flatpak_transaction_set_default_arch ()

void
flatpak_transaction_set_default_arch (FlatpakTransaction *self,
                                      const char *arch);

Sets the architecture to default to where it is unspecified.

Parameters

self

a FlatpakTransaction

 

arch

the arch to make default

 

flatpak_transaction_set_parent_window ()

void
flatpak_transaction_set_parent_window (FlatpakTransaction *self,
                                       const char *parent_window);

Sets the parent window (if any) to use for any UI show by this transaction. This is used by authenticators if they need to interact with the user during authentication.

The format of this string depends on the display system in use, and is the same as used by xdg-desktop-portal.

On X11 it should be of the form x11:$xid where $xid is the hex version of the xwindows id.

On wayland is should be wayland:$handle where handle is gotten by using the export call of the xdg-foreign-unstable wayland extension.

Parameters

self

a FlatpakTransaction

 

parent_window

whether to avoid pulls

 

Since: 1.5.1

flatpak_transaction_get_parent_window ()

const char *
flatpak_transaction_get_parent_window (FlatpakTransaction *self);

Gets the parent window set for this transaction, or NULL if unset. See flatpak_transaction_get_parent_window().

Parameters

Returns

a window name, or NULL.

[transfer none]

Since: 1.5.1

flatpak_transaction_abort_webflow ()

void
flatpak_transaction_abort_webflow (FlatpakTransaction *self,
                                   guint id);

Cancel an ongoing webflow authentication request. This can be call in the time between “webflow-start” returned TRUE, and “webflow-done” is emitted. It will cancel the ongoing authentication operation.

This is useful for example if you're showing an authenticaion window with a browser, but the user closed it before it was finished.

Parameters

self

a FlatpakTransaction

 

id

The webflow id, as passed into the webflow-start signal

 

Since: 1.5.1

Types and Values

FlatpakTransaction

typedef struct _FlatpakTransaction FlatpakTransaction;

enum FlatpakTransactionOperationType

The type of a FlatpakTransactionOperation.

Members

FLATPAK_TRANSACTION_OPERATION_INSTALL

Install a ref from a remote

 

FLATPAK_TRANSACTION_OPERATION_UPDATE

Update an installed ref

 

FLATPAK_TRANSACTION_OPERATION_INSTALL_BUNDLE

Install a bundle from a file

 

FLATPAK_TRANSACTION_OPERATION_UNINSTALL

Uninstall a ref

 

FLATPAK_TRANSACTION_OPERATION_LAST_TYPE

The (currently) last operation type

 

enum FlatpakTransactionErrorDetails

The details for “operation-error”.

Members

FLATPAK_TRANSACTION_ERROR_DETAILS_NON_FATAL

The operation failure was not fatal

 

enum FlatpakTransactionRemoteReason

The reason for “add-new-remote”.

Members

FLATPAK_TRANSACTION_REMOTE_GENERIC_REPO

The remote specified in the flatpakref has other apps too

 

FLATPAK_TRANSACTION_REMOTE_RUNTIME_DEPS

The remote has runtimes needed for the app

 

enum FlatpakTransactionResult

The details for “operation-done”.

Members

FLATPAK_TRANSACTION_RESULT_NO_CHANGE

The update caused no changes

 

Property Details

The “installation” property

  “installation”             FlatpakInstallation *

The installation that the transaction operates on.

Owner: FlatpakTransaction

Flags: Read / Write / Construct Only

Signal Details

The “add-new-remote” signal

gboolean
user_function (FlatpakTransaction *object,
               gint                reason,
               gchar              *from_id,
               gchar              *suggested_remote_name,
               gchar              *url,
               gpointer            user_data)

The ::add-new-remote signal gets emitted if, as part of the transaction, it is required or recommended that a new remote is added, for the reason described in reason .

Parameters

object

A FlatpakTransaction

 

reason

A FlatpakTransactionRemoteReason for this suggestion.

[type FlatpakTransactionRemoteReason]

from_id

The id of the app/runtime

 

suggested_remote_name

The suggested remote name

 

url

The repo url

 

user_data

user data set when the signal handler was connected.

 

Returns

TRUE to add the remote

Flags: Run Last

The “basic-auth-start” signal

gboolean
user_function (FlatpakTransaction *object,
               gchar              *remote,
               gchar              *realm,
               GVariant           *options,
               gint                id,
               gpointer            user_data)

The ::basic-auth-start signal gets emitted when a basic user/password authentication is needed during the operation. If the caller handles this it should ask the user for the user and password and return TRUE. Once the information is gathered call flatpak_transaction_complete_basic_auth() with it.

If the client does not support basic auth then return FALSE from this signal (or don't implement it). This will abort the authentication and likely result in the transaction failing (unless the authentication was somehow optional).

Parameters

object

A FlatpakTransaction

 

remote

The remote we're authenticating with

 

realm

The url to show

 

options

Extra options, currently unused

 

id

The id of the operation, can be used to finish it

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 1.5.2

The “choose-remote-for-ref” signal

gint
user_function (FlatpakTransaction *object,
               gchar              *for_ref,
               gchar              *runtime_ref,
               GStrv               remotes,
               gpointer            user_data)

The ::choose-remote-for-ref signal gets emitted when a remote needs to be selected during the execution of the transaction.

Parameters

object

A FlatpakTransaction

 

for_ref

The ref we are installing

 

runtime_ref

The ref we are looking for

 

remotes

the remotes that has the ref, sorted in prio order

 

user_data

user data set when the signal handler was connected.

 

Returns

the index of the remote to use, or -1 to not pick one (and fail)

Flags: Run Last

The “end-of-lifed” signal

void
user_function (FlatpakTransaction *object,
               gchar              *ref,
               gchar              *reason,
               gchar              *rebase,
               gpointer            user_data)

The ::end-of-lifed signal gets emitted when a ref is found to be marked as end-of-life during the execution of the transaction.

Parameters

object

A FlatpakTransaction

 

ref

The ref we are installing

 

reason

The eol reason, or NULL

 

rebase

The new name, if rebased, or NULL

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

The “end-of-lifed-with-rebase” signal

gboolean
user_function (FlatpakTransaction *object,
               gchar              *remote,
               gchar              *ref,
               gchar              *reason,
               gchar              *rebased_to_ref,
               GStrv               previous_ids,
               gpointer            user_data)

The ::end-of-lifed-with-rebase signal gets emitted when a ref is found to be marked as end-of-life before the transaction begins. Unlike “end-of-lifed”, this signal allows for the transaction to be modified in order to e.g. install the rebased ref.

Parameters

object

A FlatpakTransaction

 

remote

The remote for the ref we are processing

 

ref

The ref we are processing

 

reason

The eol reason, or NULL

 

rebased_to_ref

The new name, if rebased, or NULL

 

previous_ids

The previous names for the rebased ref (if any), including the one from ref

 

user_data

user data set when the signal handler was connected.

 

Returns

TRUE if the operation on this end-of-lifed ref should be skipped, FALSE if it should remain.

Flags: Run Last

The “install-authenticator” signal

void
user_function (FlatpakTransaction *object,
               gchar              *remote,
               gchar              *authenticator_ref,
               gpointer            user_data)

The ::install-authenticator signal gets emitted if, as part of resolving the transaction, we need to use an authenticator, but the authentication is not installed, but is available to be installed from the ref.

The application can handle this signal, and if so create another transaction to install the authenticator.

The default handler does nothing, and if the authenticator is not installed when the signal handler fails the transaction will error out.

Parameters

object

A FlatpakTransaction

 

remote

The remote name

 

authenticator_ref

The ref for the authenticator

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 1.7.4

The “new-operation” signal

void
user_function (FlatpakTransaction          *object,
               FlatpakTransactionOperation *operation,
               FlatpakTransactionProgress  *progress,
               gpointer                     user_data)

The ::new-operation signal gets emitted during the execution of the transaction when a new operation is beginning.

Parameters

object

A FlatpakTransaction

 

operation

The new FlatpakTransactionOperation

 

progress

A FlatpakTransactionProgress for operation

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

The “operation-done” signal

void
user_function (FlatpakTransaction          *object,
               FlatpakTransactionOperation *operation,
               gchar                       *commit,
               gint                         result,
               gpointer                     user_data)

The ::operation-done signal gets emitted during the execution of the transaction when an operation is finished.

Parameters

object

A FlatpakTransaction

 

operation

The FlatpakTransactionOperation which finished

 

commit

The commit

 

result

A FlatpakTransactionResult giving details about the result.

[type FlatpakTransactionResult]

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

The “operation-error” signal

gboolean
user_function (FlatpakTransaction          *object,
               FlatpakTransactionOperation *operation,
               GError                      *error,
               gint                         details,
               gpointer                     user_data)

The ::operation-error signal gets emitted when an error occurs during the execution of the transaction.

Parameters

object

A FlatpakTransaction

 

operation

The FlatpakTransactionOperation which failed

 

error

A GError

 

details

A FlatpakTransactionErrorDetails with details about the error.

[type FlatpakTransactionErrorDetails]

user_data

user data set when the signal handler was connected.

 

Returns

the TRUE to contine transaction, FALSE to stop

Flags: Run Last

The “ready” signal

gboolean
user_function (FlatpakTransaction *object,
               gpointer            user_data)

The ::ready signal is emitted when all the refs involved in the operation have been resolved to commits, and the required authentication for all ops is gotten. At this point flatpak_transaction_get_operations() will return all the operations that will be executed as part of the transaction.

Parameters

object

A FlatpakTransaction

 

user_data

user data set when the signal handler was connected.

 

Returns

TRUE to carry on with the transaction, FALSE to abort

Flags: Run Last

The “ready-pre-auth” signal

gboolean
user_function (FlatpakTransaction *object,
               gpointer            user_data)

The ::ready-pre-auth signal is emitted when all the refs involved in the operation have been resolved to commits, but all we might not necessarily have asked for authenticaion for all there required operations. This is very similar to the ::ready signal, and you can chose which one (or both) to use depending on how you want to handle authentication in your user interface.

At this point flatpak_transaction_get_operations() will return all the operations that will be executed as part of the transaction. You can call flatpak_transaction_operation_get_requires_authentication() to see which will require authentication.

Parameters

object

A FlatpakTransaction

 

user_data

user data set when the signal handler was connected.

 

Returns

TRUE to carry on with the transaction, FALSE to abort

Flags: Run Last

The “webflow-done” signal

void
user_function (FlatpakTransaction *object,
               GVariant           *options,
               gint                id,
               gpointer            user_data)

The ::webflow-done signal gets emitted when the authentication finished the webflow, independent of the reason and results. If you for were showing a web-browser window it can now be closed.

Parameters

object

A FlatpakTransaction

 

options

Extra options, currently unused

 

id

The id of the operation

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 1.5.1

The “webflow-start” signal

gboolean
user_function (FlatpakTransaction *object,
               gchar              *remote,
               gchar              *url,
               GVariant           *options,
               gint                id,
               gpointer            user_data)

The ::webflow-start signal gets emitted when some kind of user authentication is needed during the operation. If the caller handles this it should show the url in a webbrowser and return TRUE. This will eventually cause the webbrowser to finish the authentication operation and operation will continue, as signaled by the webflow-done being emitted.

If the client does not support webflow then return FALSE from this signal (or don't implement it). This will abort the authentication and likely result in the transaction failing (unless the authentication was somehow optional).

During the time between webflow-start and webflow-done the client can call flatpak_transaction_abort_webflow() to manually abort the authentication. This is useful if the user aborted the authentication operation some way, like e.g. closing the browser window.

Parameters

object

A FlatpakTransaction

 

remote

The remote we're authenticating with

 

url

The url to show

 

options

Extra options, currently unused

 

id

The id of the operation, can be used to cancel it

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 1.5.1


Name

FlatpakRef — Application reference

Properties

gchar *archRead / Write / Construct Only
gchar *branchRead / Write / Construct Only
gchar *collection-idRead / Write / Construct Only
gchar *commitRead / Write / Construct Only
FlatpakRefKindkindRead / Write / Construct Only
gchar *nameRead / Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── FlatpakRef
        ├── FlatpakBundleRef
        ├── FlatpakInstalledRef
        ├── FlatpakRelatedRef
        ╰── FlatpakRemoteRef

Description

Currently Flatpak manages two types of binary artifacts: applications, and runtimes. Applications contain a program that desktop users can run, while runtimes contain only libraries and data. An FlatpakRef object (or short: ref) can refer to either of these.

Both applications and runtimes are identified by a 4-tuple of strings: kind, name, arch and branch, e.g. app/org.gnome.evince/x86_64/master. The functions flatpak_ref_parse() and flatpak_ref_format_ref() can be used to convert FlatpakRef objects into this string representation and back.

FlatpakRef objects are immutable and can be passed freely between threads.

To uniquely identify a particular version of an application or runtime, you need a commit.

The subclasses FlatpakInstalledRef and FlatpakRemoteRef provide more information for artifacts that are locally installed or available from a remote repository.

Functions

flatpak_ref_format_ref ()

char *
flatpak_ref_format_ref (FlatpakRef *self);

Convert an FlatpakRef object into a string representation that can be parsed by flatpak_ref_parse().

Parameters

self

a FlatpakRef

 

Returns

string representation.

[transfer full]

flatpak_ref_get_arch ()

const char *
flatpak_ref_get_arch (FlatpakRef *self);

Gets the arch or the ref.

Parameters

self

a FlatpakRef

 

Returns

the arch.

[transfer none]

flatpak_ref_get_branch ()

const char *
flatpak_ref_get_branch (FlatpakRef *self);

Gets the branch of the ref.

Parameters

self

a FlatpakRef

 

Returns

the branch.

[transfer none]

flatpak_ref_get_collection_id ()

const char *
flatpak_ref_get_collection_id (FlatpakRef *self);

Gets the collection ID of the ref.

Parameters

self

a FlatpakRef

 

Returns

the collection ID.

[transfer none]

flatpak_ref_get_commit ()

const char *
flatpak_ref_get_commit (FlatpakRef *self);

Gets the commit of the ref.

Parameters

self

a FlatpakRef

 

Returns

the commit.

[transfer none]

flatpak_ref_get_kind ()

FlatpakRefKind
flatpak_ref_get_kind (FlatpakRef *self);

Gets the kind of artifact that this ref refers to.

Parameters

self

a FlatpakRef

 

Returns

the kind of artifact

flatpak_ref_get_name ()

const char *
flatpak_ref_get_name (FlatpakRef *self);

Gets the name of the ref.

Parameters

self

a FlatpakRef

 

Returns

the name.

[transfer none]

flatpak_ref_parse ()

FlatpakRef *
flatpak_ref_parse (const char *ref,
                   GError **error);

Tries to parse a full ref name and return a FlatpakRef (without a commit set) or fail if the ref is invalid somehow.

Parameters

ref

A string ref name, such as "app/org.test.App/x86_64/master"

 

error

return location for a GError

 

Returns

an FlatpakRef, or NULL.

[transfer full]

Types and Values

struct FlatpakRef

struct FlatpakRef;

enum FlatpakRefKind

The kind of artifact that a FlatpakRef refers to.

Members

FLATPAK_REF_KIND_APP

An application

 

FLATPAK_REF_KIND_RUNTIME

A runtime that applications can use.

 

Property Details

The “arch” property

  “arch”                     gchar *

The architecture of the application or runtime.

Owner: FlatpakRef

Flags: Read / Write / Construct Only

Default value: NULL

The “branch” property

  “branch”                   gchar *

The branch of the application or runtime.

Owner: FlatpakRef

Flags: Read / Write / Construct Only

Default value: NULL

The “collection-id” property

  “collection-id”            gchar *

The collection ID.

Owner: FlatpakRef

Flags: Read / Write / Construct Only

Default value: NULL

The “commit” property

  “commit”                   gchar *

The commit.

Owner: FlatpakRef

Flags: Read / Write / Construct Only

Default value: NULL

The “kind” property

  “kind”                     FlatpakRefKind

The kind of artifact.

Owner: FlatpakRef

Flags: Read / Write / Construct Only

Default value: FLATPAK_REF_KIND_APP

The “name” property

  “name”                     gchar *

The name of the application or runtime.

Owner: FlatpakRef

Flags: Read / Write / Construct Only

Default value: NULL


Name

FlatpakInstalledRef — Installed application reference

Properties

GHashTable *appdata-content-ratingRead / Write / Construct Only
gchar *appdata-content-rating-typeRead / Write / Construct Only
gchar *appdata-licenseRead / Write / Construct Only
gchar *appdata-nameRead / Write / Construct Only
gchar *appdata-summaryRead / Write / Construct Only
gchar *appdata-versionRead / Write / Construct Only
gchar *deploy-dirRead / Write
gchar *end-of-lifeRead / Write / Construct Only
gchar *end-of-life-rebaseRead / Write / Construct Only
guint64installed-sizeRead / Write
gbooleanis-currentRead / Write
gchar *latest-commitRead / Write
gchar *originRead / Write
GStrvsubpathsRead / Write

Types and Values

Object Hierarchy

    GObject
    ╰── FlatpakRef
        ╰── FlatpakInstalledRef

Description

A FlatpakInstalledRef provides information about an installed application or runtime (in short: ref), such as the available builds, its size, location, etc.

Functions

flatpak_installed_ref_get_deploy_dir ()

const char *
flatpak_installed_ref_get_deploy_dir (FlatpakInstalledRef *self);

Gets the deploy dir of the ref.

Parameters

Returns

the deploy dir.

[transfer none]

flatpak_installed_ref_get_installed_size ()

guint64
flatpak_installed_ref_get_installed_size
                               (FlatpakInstalledRef *self);

Returns the installed size of the ref.

Parameters

Returns

the installed size

flatpak_installed_ref_get_is_current ()

gboolean
flatpak_installed_ref_get_is_current (FlatpakInstalledRef *self);

Returns whether the ref is current.

Parameters

Returns

TRUE if the ref is current

flatpak_installed_ref_get_latest_commit ()

const char *
flatpak_installed_ref_get_latest_commit
                               (FlatpakInstalledRef *self);

Gets the latest commit of the ref.

Parameters

Returns

the latest commit.

[transfer none][nullable]

flatpak_installed_ref_get_origin ()

const char *
flatpak_installed_ref_get_origin (FlatpakInstalledRef *self);

Gets the origin of the ref.

Parameters

Returns

the origin.

[transfer none]

flatpak_installed_ref_load_appdata ()

GBytes *
flatpak_installed_ref_load_appdata (FlatpakInstalledRef *self,
                                    GCancellable *cancellable,
                                    GError **error);

Loads the compressed xml appdata for this ref (if it exists).

Parameters

self

a FlatpakInstalledRef

 

cancellable

a GCancellable.

[nullable]

error

a return location for a GError

 

Returns

a GBytes containing the compressed appdata file, or NULL if an error occurred.

[transfer full]

Since: 1.1.2

flatpak_installed_ref_load_metadata ()

GBytes *
flatpak_installed_ref_load_metadata (FlatpakInstalledRef *self,
                                     GCancellable *cancellable,
                                     GError **error);

Loads the metadata file for this ref.

Parameters

self

a FlatpakInstalledRef

 

cancellable

a GCancellable.

[nullable]

error

a return location for a GError

 

Returns

a GBytes containing the metadata file, or NULL if an error occurred.

[transfer full]

flatpak_installed_ref_get_appdata_license ()

const char *
flatpak_installed_ref_get_appdata_license
                               (FlatpakInstalledRef *self);

Returns the license field from the appdata.

Parameters

Returns

the license or NULL.

[transfer none]

Since: 1.1.2

flatpak_installed_ref_get_appdata_name ()

const char *
flatpak_installed_ref_get_appdata_name
                               (FlatpakInstalledRef *self);

Returns the name field from the appdata.

The returned string is localized.

Parameters

Returns

the name or NULL.

[transfer none]

Since: 1.1.2

flatpak_installed_ref_get_appdata_summary ()

const char *
flatpak_installed_ref_get_appdata_summary
                               (FlatpakInstalledRef *self);

Returns the summary field from the appdata.

The returned string is localized.

Parameters

Returns

the summary or NULL.

[transfer none]

Since: 1.1.2

flatpak_installed_ref_get_appdata_version ()

const char *
flatpak_installed_ref_get_appdata_version
                               (FlatpakInstalledRef *self);

Returns the default version field from the appdata.

Parameters

Returns

the version or NULL.

[transfer none]

Since: 1.1.2

flatpak_installed_ref_get_appdata_content_rating ()

GHashTable *
flatpak_installed_ref_get_appdata_content_rating
                               (FlatpakInstalledRef *self);

Returns the content rating field from the appdata. This is a potentially empty mapping of content rating attribute IDs to values, to be interpreted by the semantics of the content rating type (see flatpak_installed_ref_get_appdata_content_rating_type()).

Parameters

Returns

the content rating or NULL.

[transfer none][nullable]

Since: 1.4.2

flatpak_installed_ref_get_appdata_content_rating_type ()

const char *
flatpak_installed_ref_get_appdata_content_rating_type
                               (FlatpakInstalledRef *self);

Returns the content rating type from the appdata. For example, oars-1.0 or oars-1.1.

Parameters

Returns

the content rating type or NULL.

[transfer none][nullable]

Since: 1.4.2

flatpak_installed_ref_get_subpaths ()

const char * const *
flatpak_installed_ref_get_subpaths (FlatpakInstalledRef *self);

Returns the subpaths that are installed, or NULL if all files installed.

Parameters

Returns

A strv, or NULL.

[transfer none]

flatpak_installed_ref_get_eol ()

const char *
flatpak_installed_ref_get_eol (FlatpakInstalledRef *self);

Returns the end-of-life reason string, or NULL if the ref is not end-of-lifed.

Parameters

Returns

the end-of-life reason or NULL.

[transfer none]

flatpak_installed_ref_get_eol_rebase ()

const char *
flatpak_installed_ref_get_eol_rebase (FlatpakInstalledRef *self);

Returns the end-of-life rebased ref, or NULL if the ref is not end-of-lifed.

Parameters

Returns

the end-of-life rebased ref or NULL.

[transfer none]

Types and Values

struct FlatpakInstalledRef

struct FlatpakInstalledRef;

Property Details

The “appdata-content-rating” property

  “appdata-content-rating”   GHashTable *

The content rating data from the appdata.

Owner: FlatpakInstalledRef

Flags: Read / Write / Construct Only

The “appdata-content-rating-type” property

  “appdata-content-rating-type” gchar *

The type of the content rating data from the appdata.

Owner: FlatpakInstalledRef

Flags: Read / Write / Construct Only

Default value: NULL

The “appdata-license” property

  “appdata-license”          gchar *

The license from the appdata.

Owner: FlatpakInstalledRef

Flags: Read / Write / Construct Only

Default value: NULL

The “appdata-name” property

  “appdata-name”             gchar *

The localized name field from the appdata.

Owner: FlatpakInstalledRef

Flags: Read / Write / Construct Only

Default value: NULL

The “appdata-summary” property

  “appdata-summary”          gchar *

The localized summary field from the appdata.

Owner: FlatpakInstalledRef

Flags: Read / Write / Construct Only

Default value: NULL

The “appdata-version” property

  “appdata-version”          gchar *

The default version field from the appdata.

Owner: FlatpakInstalledRef

Flags: Read / Write / Construct Only

Default value: NULL

The “deploy-dir” property

  “deploy-dir”               gchar *

Where the application is installed.

Owner: FlatpakInstalledRef

Flags: Read / Write

Default value: NULL

The “end-of-life” property

  “end-of-life”              gchar *

The reason for the ref to be end of life.

Owner: FlatpakInstalledRef

Flags: Read / Write / Construct Only

Default value: NULL

The “end-of-life-rebase” property

  “end-of-life-rebase”       gchar *

The new ref for the end-of-lifed ref.

Owner: FlatpakInstalledRef

Flags: Read / Write / Construct Only

Default value: NULL

The “installed-size” property

  “installed-size”           guint64

The installed size of the application.

Owner: FlatpakInstalledRef

Flags: Read / Write

Default value: 0

The “is-current” property

  “is-current”               gboolean

Whether the application is current.

Owner: FlatpakInstalledRef

Flags: Read / Write

Default value: FALSE

The “latest-commit” property

  “latest-commit”            gchar *

The latest commit.

Owner: FlatpakInstalledRef

Flags: Read / Write

Default value: NULL

The “origin” property

  “origin”                   gchar *

The origin.

Owner: FlatpakInstalledRef

Flags: Read / Write

Default value: NULL

The “subpaths” property

  “subpaths”                 GStrv

The subpaths for a partially installed ref.

Owner: FlatpakInstalledRef

Flags: Read / Write


Name

FlatpakRelatedRef — Related application reference

Properties

gbooleanshould-autopruneRead / Write / Construct Only
gbooleanshould-deleteRead / Write / Construct Only
gbooleanshould-downloadRead / Write / Construct Only
GStrvsubpathsRead / Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── FlatpakRef
        ╰── FlatpakRelatedRef

Description

A FlatpakRelatedRef provides information about an ref that is related to another ref. For instance, the local extension ref of an app.

Functions

flatpak_related_ref_new ()

FlatpakRelatedRef *
flatpak_related_ref_new (const char *full_ref,
                         const char *commit,
                         char **subpaths,
                         gboolean download,
                         gboolean delete);

Creates a new FlatpakRelatedRef object.

Parameters

full_ref

a full ref to refer to

 

commit

a commit ID to refer to.

[nullable]

subpaths

a nul-terminated array of subpaths.

[nullable]

download

whether to auto-download the ref with the main ref

 

delete

whether to auto-delete the ref with the main ref

 

Returns

a new ref

flatpak_related_ref_get_subpaths ()

const char * const *
flatpak_related_ref_get_subpaths (FlatpakRelatedRef *self);

Returns the subpaths that should be installed/updated for the ref. This returns NULL if all files should be installed.

Parameters

Returns

A strv, or NULL.

[transfer none]

Since: 0.6.7

flatpak_related_ref_should_download ()

gboolean
flatpak_related_ref_should_download (FlatpakRelatedRef *self);

Returns whether to auto-download the ref with the main ref.

Parameters

Returns

TRUE if the ref should be downloaded with the main ref.

Since: 0.6.7

flatpak_related_ref_should_delete ()

gboolean
flatpak_related_ref_should_delete (FlatpakRelatedRef *self);

Returns whether to auto-delete the ref with the main ref.

Parameters

Returns

TRUE if the ref should be deleted with the main ref.

Since: 0.6.7

flatpak_related_ref_should_autoprune ()

gboolean
flatpak_related_ref_should_autoprune (FlatpakRelatedRef *self);

Returns whether to delete when pruning unused refs.

Parameters

Returns

TRUE if the ref should be considered unused when pruning.

Since: 0.11.8

Types and Values

struct FlatpakRelatedRef

struct FlatpakRelatedRef;

Property Details

The “should-autoprune” property

  “should-autoprune”         gboolean

Whether to delete when pruning unused refs.

Owner: FlatpakRelatedRef

Flags: Read / Write / Construct Only

Default value: FALSE

The “should-delete” property

  “should-delete”            gboolean

Whether to auto-delete the ref with the main ref.

Owner: FlatpakRelatedRef

Flags: Read / Write / Construct Only

Default value: FALSE

The “should-download” property

  “should-download”          gboolean

Whether to auto-download the ref with the main ref.

Owner: FlatpakRelatedRef

Flags: Read / Write / Construct Only

Default value: FALSE

The “subpaths” property

  “subpaths”                 GStrv

The subpaths for a partially installed ref.

Owner: FlatpakRelatedRef

Flags: Read / Write / Construct Only


Name

FlatpakRemoteRef — Remote application reference

Properties

guint64download-sizeRead / Write / Construct Only
gchar *end-of-lifeRead / Write / Construct Only
gchar *end-of-life-rebaseRead / Write / Construct Only
guint64installed-sizeRead / Write / Construct Only
GBytes *metadataRead / Write / Construct Only
gchar *remote-nameRead / Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── FlatpakRef
        ╰── FlatpakRemoteRef

Description

A FlatpakRemoteRef provides information about an application or runtime (in short: ref) that is available from a remote repository.

Functions

flatpak_remote_ref_get_remote_name ()

const char *
flatpak_remote_ref_get_remote_name (FlatpakRemoteRef *self);

Gets the remote name of the ref.

Parameters

Returns

the remote name.

[transfer none]

flatpak_remote_ref_get_download_size ()

guint64
flatpak_remote_ref_get_download_size (FlatpakRemoteRef *self);

Returns the download size of the ref.

Parameters

Returns

the download size

flatpak_remote_ref_get_eol ()

const char *
flatpak_remote_ref_get_eol (FlatpakRemoteRef *self);

Returns the end-of-life reason string, or NULL if the ref is not end-of-lifed.

Parameters

Returns

the end-of-life reason or NULL.

[transfer none]

flatpak_remote_ref_get_eol_rebase ()

const char *
flatpak_remote_ref_get_eol_rebase (FlatpakRemoteRef *self);

Returns the end-of-life rebased ref, or NULL if the ref is not end-of-lifed.

Parameters

Returns

the end-of-life rebased ref or NULL.

[transfer none]

flatpak_remote_ref_get_installed_size ()

guint64
flatpak_remote_ref_get_installed_size (FlatpakRemoteRef *self);

Returns the installed size of the ref.

Parameters

Returns

the installed size

flatpak_remote_ref_get_metadata ()

GBytes *
flatpak_remote_ref_get_metadata (FlatpakRemoteRef *self);

Returns the app metadata from the metadata cache of the ref.

Parameters

Returns

a GBytes with the metadata file contents or NULL.

[transfer none][nullable]

Types and Values

struct FlatpakRemoteRef

struct FlatpakRemoteRef;

Property Details

The “download-size” property

  “download-size”            guint64

The download size of the application.

Owner: FlatpakRemoteRef

Flags: Read / Write / Construct Only

Default value: 0

The “end-of-life” property

  “end-of-life”              gchar *

The reason for the ref to be end of life.

Owner: FlatpakRemoteRef

Flags: Read / Write / Construct Only

Default value: NULL

The “end-of-life-rebase” property

  “end-of-life-rebase”       gchar *

The new ref for the end of lifeed ref.

Owner: FlatpakRemoteRef

Flags: Read / Write / Construct Only

Default value: NULL

The “installed-size” property

  “installed-size”           guint64

The installed size of the application.

Owner: FlatpakRemoteRef

Flags: Read / Write / Construct Only

Default value: 0

The “metadata” property

  “metadata”                 GBytes *

The metadata info for the application.

Owner: FlatpakRemoteRef

Flags: Read / Write / Construct Only

The “remote-name” property

  “remote-name”              gchar *

The name of the remote.

Owner: FlatpakRemoteRef

Flags: Read / Write / Construct Only

Default value: NULL


Name

FlatpakBundleRef — Application bundle reference

Properties

GFile *fileRead / Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── FlatpakRef
        ╰── FlatpakBundleRef

Description

A FlatpakBundleRef refers to a single-file bundle containing an application or runtime.

Functions

flatpak_bundle_ref_new ()

FlatpakBundleRef *
flatpak_bundle_ref_new (GFile *file,
                        GError **error);

Creates a new bundle ref for the given file.

Parameters

file

a GFile

 

error

return location for an error.

[allow-none]

Returns

a new bundle ref.

flatpak_bundle_ref_get_file ()

GFile *
flatpak_bundle_ref_get_file (FlatpakBundleRef *self);

Get the file this bundle is stored in.

Parameters

Returns

(transfer full) : an GFile

flatpak_bundle_ref_get_metadata ()

GBytes *
flatpak_bundle_ref_get_metadata (FlatpakBundleRef *self);

Get the metadata for the app/runtime

Parameters

Returns

(transfer full) : an GBytes with the metadata contents, or NULL

flatpak_bundle_ref_get_appstream ()

GBytes *
flatpak_bundle_ref_get_appstream (FlatpakBundleRef *self);

Get the compressed appstream for the app/runtime

Parameters

Returns

(transfer full) : an GBytes with the appstream contents, or NULL

flatpak_bundle_ref_get_icon ()

GBytes *
flatpak_bundle_ref_get_icon (FlatpakBundleRef *self,
                             int size);

Get the icon png data for the app/runtime

Parameters

self

a FlatpakBundleRef

 

size

64 or 128

 

Returns

(transfer full) : an GBytes with png contents

flatpak_bundle_ref_get_origin ()

char *
flatpak_bundle_ref_get_origin (FlatpakBundleRef *self);

Get the origin url stored in the bundle

Parameters

Returns

(transfer full) : an url string, or NULL

flatpak_bundle_ref_get_installed_size ()

guint64
flatpak_bundle_ref_get_installed_size (FlatpakBundleRef *self);

Returns the installed size for the bundle.

Parameters

self

a FlatpakBundleRef

 

Returns

the installed size

flatpak_bundle_ref_get_runtime_repo_url ()

char *
flatpak_bundle_ref_get_runtime_repo_url
                               (FlatpakBundleRef *self);

Get the runtime flatpakrepo url stored in the bundle (if any)

Parameters

Returns

(transfer full) : an url string, or NULL

Since: 0.8.0

Types and Values

struct FlatpakBundleRef

struct FlatpakBundleRef;

Property Details

The “file” property

  “file”                     GFile *

The bundle file that this ref refers to.

Owner: FlatpakBundleRef

Flags: Read / Write / Construct Only


Name

FlatpakInstance — Information about a running sandbox

Types and Values

Object Hierarchy

    GObject
    ╰── FlatpakInstance

Description

A FlatpakInstance refers to a running sandbox, and contains some basic information about the sandbox setup, such as the application and runtime used inside the sandbox.

Importantly, it also gives access to the PID of the main processes in the sandbox.

One way to obtain FlatpakInstances is to use flatpak_instance_get_all(). Another way is to use flatpak_installation_launch_full().

Note that process lifecycle tracking is fundamentally racy. You have to be prepared for the sandbox and the processes represented by a FlatpakInstance to not be around anymore.

The FlatpakInstance api was added in Flatpak 1.1.

Functions

flatpak_instance_get_all ()

GPtrArray *
flatpak_instance_get_all (void);

Gets FlatpakInstance objects for all running sandboxes in the current session.

Returns

a GPtrArray of FlatpakInstance objects.

[transfer full][element-type FlatpakInstance]

Since: 1.1

flatpak_instance_get_id ()

const char *
flatpak_instance_get_id (FlatpakInstance *self);

Gets the instance ID. The ID is used by Flatpak for bookkeeping purposes and has no further relevance.

Parameters

Returns

the instance ID

Since: 1.1

flatpak_instance_get_app ()

const char *
flatpak_instance_get_app (FlatpakInstance *self);

Gets the application ID of the application running in the instance.

Note that this may return NULL for sandboxes that don't have an application.

Parameters

Returns

the application ID

Since: 1.1

flatpak_instance_get_arch ()

const char *
flatpak_instance_get_arch (FlatpakInstance *self);

Gets the architecture of the application running in the instance.

Parameters

Returns

the architecture

Since: 1.1

flatpak_instance_get_branch ()

const char *
flatpak_instance_get_branch (FlatpakInstance *self);

Gets the branch of the application running in the instance.

Parameters

Returns

the architecture

Since: 1.1

flatpak_instance_get_commit ()

const char *
flatpak_instance_get_commit (FlatpakInstance *self);

Gets the commit of the application running in the instance.

Parameters

Returns

the commit

Since: 1.1

flatpak_instance_get_runtime ()

const char *
flatpak_instance_get_runtime (FlatpakInstance *self);

Gets the ref of the runtime used in the instance.

Parameters

Returns

the runtime ref

Since: 1.1

flatpak_instance_get_runtime_commit ()

const char *
flatpak_instance_get_runtime_commit (FlatpakInstance *self);

Gets the commit of the runtime used in the instance.

Parameters

Returns

the runtime commit

Since: 1.1

flatpak_instance_get_pid ()

int
flatpak_instance_get_pid (FlatpakInstance *self);

Gets the PID of the outermost process in the sandbox. This is not the application process itself, but a bubblewrap 'babysitter' process.

See flatpak_instance_get_child_pid().

Parameters

Returns

the outermost process PID

Since: 1.1

flatpak_instance_get_child_pid ()

int
flatpak_instance_get_child_pid (FlatpakInstance *self);

Gets the PID of the application process in the sandbox.

See flatpak_instance_get_pid().

Note that this function may return 0 immediately after launching a sandbox, for a short amount of time.

Parameters

Returns

the application process PID

Since: 1.1

flatpak_instance_get_info ()

GKeyFile *
flatpak_instance_get_info (FlatpakInstance *self);

Gets a keyfile that holds information about the running sandbox.

This file is available as /.flatpak-info inside the sandbox as well.

The most important data in the keyfile is available with separate getters, but there may be more information in the keyfile.

Parameters

Returns

the flatpak-info keyfile

Since: 1.1

flatpak_instance_is_running ()

gboolean
flatpak_instance_is_running (FlatpakInstance *self);

Finds out if the sandbox represented by self is still running.

Parameters

Returns

TRUE if the sandbox is still running

Types and Values

struct FlatpakInstance

struct FlatpakInstance;

Name

Error codes

Description

The FlatpakError and FlatpakPortalError enumerations contain error codes for some common errors.

Functions

Types and Values

FLATPAK_ERROR

#define FLATPAK_ERROR flatpak_error_quark ()

The error domain for FlatpakError errors.

enum FlatpakError

Error codes for library functions.

Members

FLATPAK_ERROR_ALREADY_INSTALLED

App/runtime is already installed

 

FLATPAK_ERROR_NOT_INSTALLED

App/runtime is not installed

 

FLATPAK_ERROR_ONLY_PULLED

App/runtime was only pulled into the local repository but not installed.

 

FLATPAK_ERROR_DIFFERENT_REMOTE

The App/Runtime is already installed, but from a different remote.

 

FLATPAK_ERROR_ABORTED

The transaction was aborted (returned TRUE in operation-error signal).

 

FLATPAK_ERROR_SKIPPED

The App/Runtime install was skipped due to earlier errors.

 

FLATPAK_ERROR_NEED_NEW_FLATPAK

The App/Runtime needs a more recent version of flatpak.

 

FLATPAK_ERROR_REMOTE_NOT_FOUND

The specified remote was not found.

 

FLATPAK_ERROR_RUNTIME_NOT_FOUND

A runtime needed for the app was not found.

 

FLATPAK_ERROR_DOWNGRADE

The pulled commit is a downgrade, and a downgrade wasn't specifically allowed. (Since: 1.0)

 

FLATPAK_ERROR_INVALID_REF

A ref could not be parsed. (Since: 1.0.3)

 

FLATPAK_ERROR_INVALID_DATA

Invalid data. (Since: 1.0.3)

 

FLATPAK_ERROR_UNTRUSTED

Missing GPG key or signature. (Since: 1.0.3)

 

FLATPAK_ERROR_SETUP_FAILED

Sandbox setup failed. (Since: 1.0.3)

 

FLATPAK_ERROR_EXPORT_FAILED

Exporting data failed. (Since: 1.0.3)

 

FLATPAK_ERROR_REMOTE_USED

Remote can't be uninstalled. (Since: 1.0.3)

 

FLATPAK_ERROR_RUNTIME_USED

Runtime can't be uninstalled. (Since: 1.0.3)

 

FLATPAK_ERROR_INVALID_NAME

Application, runtime or remote name is invalid. (Since: 1.0.3)

 

FLATPAK_ERROR_OUT_OF_SPACE

More disk space needed. (Since: 1.2.0)

 

FLATPAK_ERROR_WRONG_USER

An operation is being attempted by the wrong user (such as root operating on a user installation). (Since: 1.2.0)

 

FLATPAK_ERROR_NOT_CACHED

Cached data was requested, but it was not available. (Since: 1.4.0)

 

FLATPAK_ERROR_REF_NOT_FOUND

The specified ref was not found. (Since: 1.4.0)

 

FLATPAK_ERROR_PERMISSION_DENIED

An operation was not allowed by the administrative policy. For example, an app is not allowed to be installed due to not complying with the parental controls policy. (Since: 1.5.1)

 

FLATPAK_ERROR_AUTHENTICATION_FAILED

An authentication operation failed, for example, no correct password was supplied. (Since: 1.7.3)

 

FLATPAK_ERROR_NOT_AUTHORIZED

An operation tried to access a ref, or information about it that it was not authorized. For example, when succesfully authenticating with a server but the user doesn't have permissions for a private ref. (Since: 1.7.3)

 

FLATPAK_PORTAL_ERROR

#define FLATPAK_PORTAL_ERROR flatpak_portal_error_quark ()

The error domain for FlatpakPortalError errors.

enum FlatpakPortalError

Error codes returned by portal calls.

Members

FLATPAK_PORTAL_ERROR_FAILED

General portal failure

 

FLATPAK_PORTAL_ERROR_INVALID_ARGUMENT

An argument was invalid

 

FLATPAK_PORTAL_ERROR_NOT_FOUND

The object was not found

 

FLATPAK_PORTAL_ERROR_EXISTS

The object already exists

 

FLATPAK_PORTAL_ERROR_NOT_ALLOWED

The call was not allowed

 

FLATPAK_PORTAL_ERROR_CANCELLED

The call was cancelled by the user

 

FLATPAK_PORTAL_ERROR_WINDOW_DESTROYED

The window was destroyed by the user

 

Name

Version information

Functions

Description

These macros can be used to check the library version in use.

Functions

FLATPAK_CHECK_VERSION()

#define             FLATPAK_CHECK_VERSION(major,minor,micro)

Check that the current version is at least major .minor .micro .

Parameters

major

major version to compare against

 

minor

minor version to compare against

 

micro

micro version to compare against

 

Types and Values

FLATPAK_MAJOR_VERSION

#define FLATPAK_MAJOR_VERSION (1)

The major version.

FLATPAK_MINOR_VERSION

#define FLATPAK_MINOR_VERSION (9)

The minor version.

FLATPAK_MICRO_VERSION

#define FLATPAK_MICRO_VERSION (1)

The micro version.

D-Bus APIs

Name

org.freedesktop.Flatpak.Authenticator

Methods

RequestRefTokens (IN  s           handle_token,
                  IN  a{sv}       authenticator_options,
                  IN  s           remote,
                  IN  s           remote_uri,
                  IN  a(ssia{sv}) refs,
                  IN  a{sv}       options,
                  IN  s           parent_window,
                  OUT o           handle);

Properties

version  readable   u

Description

Method Details

The RequestRefTokens() method

RequestRefTokens (IN  s           handle_token,
                  IN  a{sv}       authenticator_options,
                  IN  s           remote,
                  IN  s           remote_uri,
                  IN  a(ssia{sv}) refs,
                  IN  a{sv}       options,
                  IN  s           parent_window,
                  OUT o           handle);

object path element. See the org.freedesktop.Flatpak.AuthenticatorRequest documentation for more information about the handle. authenticator_options: Data from the xa.authenticator-options key in the configuration for the remote, it is up to the authenticator to interpret this how it wants. remote: The name of the remote we're pulling from. remote_uri: The uri of the remote we're pulling from. refs: An array of ref that flatpak wants to pull and info about each ref. options: An extensible dict with extra options. parent_window: Identifier for the application window, see xdg-desktop-portal docs for details on its format. handle: Object path for the org.freedesktop.Flatpak.AuthenticatorRequest object representing this call.

Starts a request for resolving the tokens to use for refs from the remote (with uri remote_uri).

This is not a regular dbus call that blocks until the result is done, instead it creates a org.freedesktop.Flatpak.AuthenticatorRequest object representing the ongoing operation and returns an object path handle to it. When the operation succeds the Response signal is emitted on the request with a response status and a dict with details.

The refs array elements are of type (ssia{sv}) where the items are:

s: The ref being pulled
s: The exact commit being pulled
i: The token-type of the commit
a{sv}: Extra per-ref metadata, currenlty only has summary.* fields which are copied from the summary per-commit metadata.

On success (response 0) the returned details should have:

tokens a{sas}

A list of tokens (the first element of the struct), and the refs (the second).

For other response types, see the org.freedesktop.Flatpak.AuthenticatorRequest docs.

Exactly how the authenticator decides on what token to use is up to each implementation, but typically it needs to talk to some kind of network service which in turn may need interaction such as login or entering credit card details. This can be done in two ways:

The authenticator can use a native ui toolkit directly (as its running in the session). To make this work well the flatpak client can (if its has a UI) pass in the parent_window argument, allowing the authenticator to open its dialog in a way that is correctly parented.

Alternatively, if the interaction is web-based, then rather than showing a web browser itself it can emit the WebFlow signal on the request object, which lets the flatpak client show a webview embedded in its ui in a way that works best with its user interface.

For simple user/password authentication (such as http basic authentication systems) there is also a BasicAuth signal that can be used to get the user to interactively authenticate. This kind of authentication is quite limited, but if used it can allow nice interactive authentication even in the command line case.

Currently used keys in the options argument:

xa.oci-registry-uri s

For OCI remotes this is extracted from the summary file and contains the uri to the OCI registry that contains the images.

no-interation b

If true, the authenticator should not do any interaction (and fail instead if it needs to). This can be enabled by clients that want to run in the background.

IN s handle_token:

A string that will be used as the last element of the handle. Must be a valid

IN a{sv} authenticator_options:

IN s remote:

IN s remote_uri:

IN a(ssia{sv}) refs:

IN a{sv} options:

IN s parent_window:

OUT o handle:

Property Details

The "version" property

version  readable   u


Name

org.freedesktop.Flatpak.Development — Flatpak development interface

Methods

HostCommand       (IN  ay    cwd_path,
                   IN  aay   argv,
                   IN  a{uh} fds,
                   IN  a{ss} envs,
                   IN  u     flags,
                   OUT u     pid);
HostCommandSignal (IN  u     pid,
                   IN  u     signal,
                   IN  b     to_process_group);

Signals

HostCommandExited (u pid,
                   u exit_status);

Properties

version  readable   u

Description

The Development interface lets any client, possibly in a sandbox if it has access to the session helper, spawn a process on the host, outside any sandbox.

Clearly this is not something you typically want a sandboxed app to do: it is a sandbox escape allowing arbitrary code execution, and must not be allowed for applications where sandboxing is intended to be a security boundary.

However, it is very useful when using Flatpak for distribution and choice of runtime library stack, without intending to create a security boundary. For instance, if an IDE like GNOME Builder is distributed as a trusted Flatpak app and will be used to build other Flatpak apps, it needs to use this facility to launch a Flatpak build operation inside the sandbox, because otherwise recursive calls to flatpak will not work.

This interface is provided on the D-Bus session bus by the well-known D-Bus name org.freedesktop.Flatpak, at the object path /org/freedesktop/Flatpak/Development.

This documentation describes version 1 of this interface.

Method Details

The HostCommand() method

HostCommand (IN  ay    cwd_path,
             IN  aay   argv,
             IN  a{uh} fds,
             IN  a{ss} envs,
             IN  u     flags,
             OUT u     pid);

This method lets trusted applications (insider or outside a sandbox) run arbitrary commands in the user's session, outside any sandbox.

The following flags values are supported:

1 (FLATPAK_HOST_COMMAND_FLAGS_CLEAR_ENV)

Clear the environment.

2 (FLATPAK_HOST_COMMAND_FLAGS_WATCH_BUS)

Kill the sandbox when the caller disappears from the session bus.

Unknown (unsupported) flags are an error and will cause HostCommand() to fail.

Note that unlike org.freedesktop.portal.Flatpak.Spawn(), there is no options parameter here.

IN ay cwd_path:

the working directory for the new process

IN aay argv:

the argv for the new process, starting with the executable to launch

IN a{uh} fds:

an array of file descriptors to pass to the new process

IN a{ss} envs:

an array of variable/value pairs for the environment of the new process

IN u flags:

flags

OUT u pid:

the PID of the new process

The HostCommandSignal() method

HostCommandSignal (IN  u pid,
                   IN  u signal,
                   IN  b to_process_group);

This method lets you send a Unix signal to a process that was started with HostCommand(). The pid argument here must be a PID that was returned by a call to HostCommand() from the same sender: terminating unrelated processes is not allowed.

IN u pid:

the process ID on the host system

IN u signal:

the signal to send (see signal(7))

IN b to_process_group:

whether to send the signal to the process group

Signal Details

The "HostCommandExited" signal

HostCommandExited (u pid,
                   u exit_status);

Emitted when a process started by HostCommand() exits. Use g_spawn_check_exit_status(), or the macros such as WIFEXITED documented in waitpid(2), to interpret the exit_status.

This signal is not emitted for processes that were not launched directly by HostCommand(), for example if a process launched by HostCommand() runs foreground or background child processes.

u pid:

the PID of the process that has ended

u exit_status:

the wait status (see waitpid(2))

Property Details

The "version" property

version  readable   u

The API version number. This documentation describes version 1 of this interface.


Name

org.freedesktop.Flatpak.SessionHelper — Flatpak session service

Methods

RequestSession (OUT a{sv} data);

Properties

version  readable   u

Description

The Flatpak session service is used by the flatpak run command to bridge various resources from the host system into Flatpak sandboxes. It is not intended to be contacted by third-party applications or libraries.

This interface is provided on the D-Bus session bus by the well-known D-Bus name org.freedesktop.Flatpak, at the object path /org/freedesktop/Flatpak/SessionHelper.

Note that the service owning the org.freedesktop.Flatpak well-known name also exports the org.freedesktop.Flatpak.Development interface. As a result, letting a sandboxed application contact that well-known name is a sandbox escape, which must only be allowed for trusted applications where there is not intended to be any security boundary between sandbox and host system.

This documentation describes version 1 of this interface.

Method Details

The RequestSession() method

RequestSession (OUT a{sv} data);

Set up monitoring and resources for a flatpak run session. See the Flatpak source code for details.

OUT a{sv} data:

Information about the new session

Property Details

The "version" property

version  readable   u

The API version number. This documentation describes version 1 of this interface.


Name

org.freedesktop.Flatpak.SystemHelper — Flatpak system service

Methods

Deploy             (IN  ay repo_path,
                    IN  u  flags,
                    IN  s  ref,
                    IN  s  origin,
                    IN  as subpaths,
                    IN  as previous_ids,
                    IN  s  installation);
DeployAppstream    (IN  ay repo_path,
                    IN  u  flags,
                    IN  s  origin,
                    IN  s  arch,
                    IN  s  installation);
Uninstall          (IN  u  flags,
                    IN  s  ref,
                    IN  s  installation);
InstallBundle      (IN  ay bundle_path,
                    IN  u  flags,
                    IN  s  remote,
                    IN  s  installation,
                    OUT s  ref);
ConfigureRemote    (IN  u  flags,
                    IN  s  remote,
                    IN  s  config,
                    IN  ay gpg_key,
                    IN  s  installation);
Configure          (IN  u  flags,
                    IN  s  key,
                    IN  s  value,
                    IN  s  installation);
UpdateRemote       (IN  u  flags,
                    IN  s  remote,
                    IN  s  installation,
                    IN  ay summary_path,
                    IN  ay summary_sig_path);
RemoveLocalRef     (IN  u  flags,
                    IN  s  remote,
                    IN  s  ref,
                    IN  s  installation);
PruneLocalRepo     (IN  u  flags,
                    IN  s  installation);
RunTriggers        (IN  u  flags,
                    IN  s  installation);
EnsureRepo         (IN  u  flags,
                    IN  s  installation);
UpdateSummary      (IN  u  flags,
                    IN  s  installation);
GenerateOciSummary (IN  u  flags,
                    IN  s  origin,
                    IN  s  installation);
CancelPull         (IN  u  flags,
                    IN  s  installation,
                    IN  s  src_dir);
GetRevokefsFd      (IN  u  flags,
                    IN  s  installation,
                    OUT h  fd_index,
                    OUT s  src_dir);

Properties

version  readable   u

Description

The Flatpak system service is used by the libflatpak library to manipulate Flatpak applications and runtimes that are installed system-wide, for example when implementing flatpak install. It is not intended to be contacted by third-party applications or libraries. See the Flatpak source code for more details of this interface's methods.

This interface is provided on the D-Bus system bus by the well-known D-Bus name org.freedesktop.Flatpak.SystemHelper, at the object path /org/freedesktop/Flatpak/SystemHelper.

The system helper runs as a privileged user at the system level, and receives method calls from less-privileged users. Authorization for method calls on this interface is mediated by polkit (formerly PolicyKit) using the policy configuration org.freedesktop.Flatpak.policy, and can be configured by system administrators in the same way as for any other system service that uses polkit.

Method Details

The Deploy() method

Deploy (IN  ay repo_path,
        IN  u  flags,
        IN  s  ref,
        IN  s  origin,
        IN  as subpaths,
        IN  as previous_ids,
        IN  s  installation);

IN ay repo_path:

IN u flags:

IN s ref:

IN s origin:

IN as subpaths:

IN as previous_ids:

IN s installation:

The DeployAppstream() method

DeployAppstream (IN  ay repo_path,
                 IN  u  flags,
                 IN  s  origin,
                 IN  s  arch,
                 IN  s  installation);

IN ay repo_path:

IN u flags:

IN s origin:

IN s arch:

IN s installation:

The Uninstall() method

Uninstall (IN  u flags,
           IN  s ref,
           IN  s installation);

IN u flags:

IN s ref:

IN s installation:

The InstallBundle() method

InstallBundle (IN  ay bundle_path,
               IN  u  flags,
               IN  s  remote,
               IN  s  installation,
               OUT s  ref);

IN ay bundle_path:

IN u flags:

IN s remote:

IN s installation:

OUT s ref:

The ConfigureRemote() method

ConfigureRemote (IN  u  flags,
                 IN  s  remote,
                 IN  s  config,
                 IN  ay gpg_key,
                 IN  s  installation);

IN u flags:

IN s remote:

IN s config:

IN ay gpg_key:

IN s installation:

The Configure() method

Configure (IN  u flags,
           IN  s key,
           IN  s value,
           IN  s installation);

IN u flags:

IN s key:

IN s value:

IN s installation:

The UpdateRemote() method

UpdateRemote (IN  u  flags,
              IN  s  remote,
              IN  s  installation,
              IN  ay summary_path,
              IN  ay summary_sig_path);

IN u flags:

IN s remote:

IN s installation:

IN ay summary_path:

IN ay summary_sig_path:

The RemoveLocalRef() method

RemoveLocalRef (IN  u flags,
                IN  s remote,
                IN  s ref,
                IN  s installation);

IN u flags:

IN s remote:

IN s ref:

IN s installation:

The PruneLocalRepo() method

PruneLocalRepo (IN  u flags,
                IN  s installation);

IN u flags:

IN s installation:

The RunTriggers() method

RunTriggers (IN  u flags,
             IN  s installation);

IN u flags:

IN s installation:

The EnsureRepo() method

EnsureRepo (IN  u flags,
            IN  s installation);

IN u flags:

IN s installation:

The UpdateSummary() method

UpdateSummary (IN  u flags,
               IN  s installation);

IN u flags:

IN s installation:

The GenerateOciSummary() method

GenerateOciSummary (IN  u flags,
                    IN  s origin,
                    IN  s installation);

IN u flags:

IN s origin:

IN s installation:

The CancelPull() method

CancelPull (IN  u flags,
            IN  s installation,
            IN  s src_dir);

IN u flags:

IN s installation:

IN s src_dir:

The GetRevokefsFd() method

GetRevokefsFd (IN  u flags,
               IN  s installation,
               OUT h fd_index,
               OUT s src_dir);

IN u flags:

IN s installation:

OUT h fd_index:

OUT s src_dir:

Property Details

The "version" property

version  readable   u


Name

org.freedesktop.impl.portal.PermissionStore — Database to store permissions

Methods

Lookup           (IN  s      table,
                  IN  s      id,
                  OUT a{sas} permissions,
                  OUT v      data);
Set              (IN  s      table,
                  IN  b      create,
                  IN  s      id,
                  IN  a{sas} app_permissions,
                  IN  v      data);
Delete           (IN  s      table,
                  IN  s      id);
SetValue         (IN  s      table,
                  IN  b      create,
                  IN  s      id,
                  IN  v      data);
SetPermission    (IN  s      table,
                  IN  b      create,
                  IN  s      id,
                  IN  s      app,
                  IN  as     permissions);
DeletePermission (IN  s      table,
                  IN  s      id,
                  IN  s      app);
List             (IN  s      table,
                  OUT as     ids);

Signals

Changed (s      table,
         s      id,
         b      deleted,
         v      data,
         a{sas} permissions);

Properties

version  readable   u

Description

The permission store can be used by portals to store permissions that sandboxed applications have to various resources, such as files outside the sandbox.

Since the resources managed by portals can be varied, the permission store is fairly free-form: there can be multiple tables; resources are identified by an ID, as are applications, and permissions are stored as string arrays. None of these strings are interpreted by the permission store in any way.

In addition, the permission store allows to associate extra data (in the form of a GVariant) with each resource.

This document describes version 2 of the permission store interface.

Method Details

The Lookup() method

Lookup (IN  s      table,
        IN  s      id,
        OUT a{sas} permissions,
        OUT v      data);

Looks up the entry for a resource in one of the tables and returns all associated application permissions and data.

IN s table:

the name of the table to use

IN s id:

the resource ID to look up

OUT a{sas} permissions:

map from application ID to permissions

OUT v data:

data that is associated with the resource

The Set() method

Set (IN  s      table,
     IN  b      create,
     IN  s      id,
     IN  a{sas} app_permissions,
     IN  v      data);

Writes the entry for a resource in the given table.

IN s table:

the name of the table to use

IN b create:

whether to create the table if it does not exist

IN s id:

the resource ID to modify

IN a{sas} app_permissions:

map from application ID to permissions

IN v data:

data to associate with the resource

The Delete() method

Delete (IN  s table,
        IN  s id);

Removes the entry for a resource in the given table.

IN s table:

the name of the table to use

IN s id:

the resource ID to delete

The SetValue() method

SetValue (IN  s table,
          IN  b create,
          IN  s id,
          IN  v data);

Sets just the data for a resource in the given table.

IN s table:

the name of the table to use

IN b create:

whether to create the table if it does not exist

IN s id:

the resource ID to modify

IN v data:

data to associate with the resource

The SetPermission() method

SetPermission (IN  s  table,
               IN  b  create,
               IN  s  id,
               IN  s  app,
               IN  as permissions);

Sets the permissions for an application and a resource in the given table.

IN s table:

the name of the table to use

IN b create:

whether to create the table if it does not exist

IN s id:

the resource ID to modify

IN s app:

the application ID to modify

IN as permissions:

permissions to set

The DeletePermission() method

DeletePermission (IN  s table,
                  IN  s id,
                  IN  s app);

Removes the entry for an application and a resource in the given table.

This method was added in version 2.

IN s table:

the name of the table to use

IN s id:

the resource ID to modify

IN s app:

the application ID to modify

The List() method

List (IN  s  table,
      OUT as ids);

Returns all the resources that are present in the table.

IN s table:

the name of the table to use

OUT as ids:

IDs of all resources that are present in the table

Signal Details

The "Changed" signal

Changed (s      table,
         s      id,
         b      deleted,
         v      data,
         a{sas} permissions);

The Changed signal is emitted when the entry for a resource is modified or deleted. If the entry was deleted, then data and permissions contain the last values that were found in the database. If the entry was modified, they contain the new values.

s table:

the name of the table

s id:

b deleted:

whether the resource was deleted

v data:

the data that is associated the resource

a{sas} permissions:

the permissions that are associated with the resource

Property Details

The "version" property

version  readable   u


Name

org.freedesktop.portal.Documents — Document portal

Methods

GetMountPoint     (OUT ay     path);
Add               (IN  h      o_path_fd,
                   IN  b      reuse_existing,
                   IN  b      persistent,
                   OUT s      doc_id);
AddNamed          (IN  h      o_path_parent_fd,
                   IN  ay     filename,
                   IN  b      reuse_existing,
                   IN  b      persistent,
                   OUT s      doc_id);
AddFull           (IN  ah     o_path_fds,
                   IN  u      flags,
                   IN  s      app_id,
                   IN  as     permissions,
                   OUT as     doc_ids,
                   OUT a{sv}  extra_out);
AddNamedFull      (IN  h      o_path_fd,
                   IN  ay     filename,
                   IN  u      flags,
                   IN  s      app_id,
                   IN  as     permissions,
                   OUT s      doc_id,
                   OUT a{sv}  extra_out);
GrantPermissions  (IN  s      doc_id,
                   IN  s      app_id,
                   IN  as     permissions);
RevokePermissions (IN  s      doc_id,
                   IN  s      app_id,
                   IN  as     permissions);
Delete            (IN  s      doc_id);
Lookup            (IN  ay     filename,
                   OUT s      doc_id);
Info              (IN  s      doc_id,
                   OUT ay     path,
                   OUT a{sas} apps);
List              (IN  s      app_id,
                   OUT a{say} docs);

Properties

version  readable   u

Description

The document portal allows to make files from the outside world available to sandboxed applications in a controlled way.

Exported files will be made accessible to the application via a fuse filesystem that gets mounted at /run/user/$UID/doc/. The filesystem gets mounted both outside and inside the sandbox, but the view inside the sandbox is restricted to just those files that the application is allowed to access.

Individual files will appear at /run/user/$UID/doc/$DOC_ID/filename, where $DOC_ID is the ID of the file in the document store. It is returned by the Add() and AddNamed() calls.

The permissions that the application has for a document store entry (see GrantPermissions()) are reflected in the POSIX mode bits in the fuse filesystem.

The D-Bus interface for the document portal is available under the bus name org.freedesktop.portal.Documents and the object path /org/freedesktop/portal/documents.

This documentation describes version 3 of this interface.

Method Details

The GetMountPoint() method

GetMountPoint (OUT ay path);

Returns the path at which the document store fuse filesystem is mounted. This will typically be /run/user/$UID/doc/.

OUT ay path:

the path at which the fuse filesystem is mounted

The Add() method

Add (IN  h o_path_fd,
     IN  b reuse_existing,
     IN  b persistent,
     OUT s doc_id);

Adds a file to the document store. The file is passed in the form of an open file descriptor to prove that the caller has access to the file.

IN h o_path_fd:

open file descriptor for the file to add

IN b reuse_existing:

whether to reuse an existing document store entry for the file

IN b persistent:

whether to add the file only for this session or permanently

OUT s doc_id:

the ID of the file in the document store

The AddNamed() method

AddNamed (IN  h  o_path_parent_fd,
          IN  ay filename,
          IN  b  reuse_existing,
          IN  b  persistent,
          OUT s  doc_id);

Creates an entry in the document store for writing a new file.

IN h o_path_parent_fd:

open file descriptor for the parent directory

IN ay filename:

the basename for the file

IN b reuse_existing:

whether to reuse an existing document store entry for the file

IN b persistent:

whether to add the file only for this session or permanently

OUT s doc_id:

the ID of the file in the document store

The AddFull() method

AddFull (IN  ah    o_path_fds,
         IN  u     flags,
         IN  s     app_id,
         IN  as    permissions,
         OUT as    doc_ids,
         OUT a{sv} extra_out);

Adds multiple files to the document store. The file is passed in the form of an open file descriptor to prove that the caller has access to the file.

If the as-needed-by-app flag is given, files will only be added to the document store if the application does not already have access to them. For files that are not added to the document store, the doc_ids array will contain an empty string.

Additionally, if app_id is specified, it will be given the permissions listed in GrantPermission.

The method also returns some extra info that can be used to avoid multiple roundtrips. For now it only contains as "mountpoint", the fuse mountpoint of the document portal.

This method was added in version 2 of the org.freedesktop.portal.Documents interface.

IN ah o_path_fds:

open file descriptors for the files to export

IN u flags:

flags, 1 == reuse_existing, 2 == persistent, 4 == as-needed-by-app

IN s app_id:

an application ID, or empty string

IN as permissions:

the permissions to grant, possible values are 'read', 'write', 'grant-permissions' and 'delete'

OUT as doc_ids:

the IDs of the files in the document store

OUT a{sv} extra_out:

The AddNamedFull() method

AddNamedFull (IN  h     o_path_fd,
              IN  ay    filename,
              IN  u     flags,
              IN  s     app_id,
              IN  as    permissions,
              OUT s     doc_id,
              OUT a{sv} extra_out);

Creates an entry in the document store for writing a new file.

If the as-needed-by-app flag is given, file will only be added to the document store if the application does not already have access to it. For file that is not added to the document store, the doc_id will contain an empty string.

Additionally, if app_id is specified, it will be given the permissions listed in GrantPermission.

The method also returns some extra info that can be used to avoid multiple roundtrips. For now it only contains as "mountpoint", the fuse mountpoint of the document portal.

This method was added in version 3 of the org.freedesktop.portal.Documents interface.

IN h o_path_fd:

IN ay filename:

the basename for the file

IN u flags:

flags, 1 == reuse_existing, 2 == persistent, 4 == as-needed-by-app

IN s app_id:

an application ID, or empty string

IN as permissions:

the permissions to grant, possible values are 'read', 'write', 'grant-permissions' and 'delete'

OUT s doc_id:

the ID of the file in the document store

OUT a{sv} extra_out:

The GrantPermissions() method

GrantPermissions (IN  s  doc_id,
                  IN  s  app_id,
                  IN  as permissions);

Grants access permissions for a file in the document store to an application.

This call is available inside the sandbox if the application has the 'grant-permissions' permission for the document.

IN s doc_id:

the ID of the file in the document store

IN s app_id:

the ID of the application to which permissions are granted

IN as permissions:

the permissions to grant, possible values are 'read', 'write', 'grant-permissions' and 'delete'

The RevokePermissions() method

RevokePermissions (IN  s  doc_id,
                   IN  s  app_id,
                   IN  as permissions);

Revokes access permissions for a file in the document store from an application.

This call is available inside the sandbox if the application has the 'grant-permissions' permission for the document.

IN s doc_id:

the ID of the file in the document store

IN s app_id:

the ID of the application from which permissions are revoked

IN as permissions:

the permissions to revoke, possible values are 'read', 'write', 'grant-permissions' and 'delete'

The Delete() method

Delete (IN  s doc_id);

Removes an entry from the document store. The file itself is not deleted.

This call is available inside the sandbox if the application has the 'delete' permission for the document.

IN s doc_id:

the ID of the file in the document store

The Lookup() method

Lookup (IN  ay filename,
        OUT s  doc_id);

Looks up the document ID for a file.

This call is not available inside the sandbox.

IN ay filename:

a path in the host filesystem

OUT s doc_id:

the ID of the file in the document store, or '' if the file is not in the document store

The Info() method

Info (IN  s      doc_id,
      OUT ay     path,
      OUT a{sas} apps);

Gets the filesystem path and application permissions for a document store entry.

This call is not available inside the sandbox.

IN s doc_id:

the ID of the file in the document store

OUT ay path:

the path for the file in the host filesystem

OUT a{sas} apps:

a dictionary mapping application IDs to the permissions for that application

The List() method

List (IN  s      app_id,
      OUT a{say} docs);

Lists documents in the document store for an application (or for all applications).

This call is not available inside the sandbox.

IN s app_id:

an application ID, or '' to list all documents

OUT a{say} docs:

a dictonary mapping document IDs to their filesystem path

Property Details

The "version" property

version  readable   u


Name

org.freedesktop.portal.Flatpak — Flatpak portal

Methods

Spawn               (IN  ay    cwd_path,
                     IN  aay   argv,
                     IN  a{uh} fds,
                     IN  a{ss} envs,
                     IN  u     flags,
                     IN  a{sv} options,
                     OUT u     pid);
SpawnSignal         (IN  u     pid,
                     IN  u     signal,
                     IN  b     to_process_group);
CreateUpdateMonitor (IN  a{sv} options,
                     OUT o     handle);

Signals

SpawnStarted (u pid,
              u relpid);
SpawnExited  (u pid,
              u exit_status);

Properties

version   readable   u
supports  readable   u

Description

The flatpak portal exposes some interactions with flatpak on the host to the sandbox. For example, it allows you to restart the applications or start a more sandboxed instance.

This portal is available on the D-Bus session bus under the bus name org.freedesktop.portal.Flatpak and the object path /org/freedesktop/portal/Flatpak.

This documentation describes version 4 of this interface.

Method Details

The Spawn() method

Spawn (IN  ay    cwd_path,
       IN  aay   argv,
       IN  a{uh} fds,
       IN  a{ss} envs,
       IN  u     flags,
       IN  a{sv} options,
       OUT u     pid);

This method lets you start a new instance of your application, optionally enabling a tighter sandbox.

The following flags values are supported:

1 (FLATPAK_SPAWN_FLAGS_CLEAR_ENV)

Clear the environment.

2 (FLATPAK_SPAWN_FLAGS_LATEST_VERSION)

Spawn the latest version of the app.

4 (FLATPAK_SPAWN_FLAGS_SANDBOX)

Spawn in a sandbox (equivalent of the sandbox option of flatpak run).

8 (FLATPAK_SPAWN_FLAGS_NO_NETWORK)

Spawn without network (equivalent of the unshare=network option of flatpak run).

16 (FLATPAK_SPAWN_FLAGS_WATCH_BUS)

Kill the sandbox when the caller disappears from the session bus.

32 (FLATPAK_SPAWN_FLAGS_EXPOSE_PIDS)

Expose the sandbox pids in the callers sandbox, only supported if using user namespaces for containers (not setuid), see the support property.

This was added in version 3 of this interface (available from flatpak 1.6.0 and later).

64 (FLATPAK_SPAWN_FLAGS_NOTIFY_START)

Emit a SpawnStarted signal once the sandboxed process has been fully started.

This was added in version 4 of this interface (available from flatpak 1.8.0 and later).

Unknown (unsupported) flags are an error and will cause Spawn() to fail.

Unknown (unsupported) options are ignored. The following options are supported:

sandbox-expose as

A list of filenames for files inside the sandbox that will be exposed to the new sandbox, for reading and writing. Note that absolute paths or subdirectories are not allowed.

The files must be in the sandbox subdirectory of the instance directory (i.e. ~/.var/app/$APP_ID/sandbox).

sandbox-expose-ro as

A list of filenames for files inside the sandbox that will be exposed to the new sandbox, readonly. Note that absolute paths or subdirectories are not allowed.

The files must be in the sandbox subdirectory of the instance directory (i.e. ~/.var/app/$APP_ID/sandbox).

sandbox-expose-fd ah

A list of file descriptor for files inside the sandbox that will be exposed to the new sandbox, for reading and writing (if the caller has write access). The file descriptors must be opened with O_PATH and O_NOFOLLOW and cannot be symlinks.

This was added in version 3 of this interface (available from flatpak 1.6.0 and later).

sandbox-expose-fd-ro ah

A list of file descriptor for files inside the sandbox that will be exposed to the new sandbox, readonly. The file descriptors must be opened with O_PATH and O_NOFOLLOW and cannot be symlinks.

This was added in version 3 of this interface (available from flatpak 1.6.0 and later).

sandbox-flags u

Flags affecting the created sandbox. The following flags values are supported:

1

Share the display access (X11, wayland) with the caller.

2

Share the sound access (pulseaudio) with the caller.

4

Share the gpu access with the caller.

8

Allow sandbox access to (filtered) session bus.

16

Allow sandbox access to accessibility bus.

This was added in version 3 of this interface (available from flatpak 1.6.0 and later).

IN ay cwd_path:

the working directory for the new process

IN aay argv:

the argv for the new process, starting with the executable to launch

IN a{uh} fds:

an array of file descriptors to pass to the new process

IN a{ss} envs:

an array of variable/value pairs for the environment of the new process

IN u flags:

flags

IN a{sv} options:

Vardict with optional further information

OUT u pid:

the PID of the new process

The SpawnSignal() method

SpawnSignal (IN  u pid,
             IN  u signal,
             IN  b to_process_group);

This method lets you send a Unix signal to a process that was started with Spawn(). The pid argument here should be the PID that is returned by the Spawn() call: it is not necessarily valid in the caller's PID namespace.

IN u pid:

the PID inside the container to signal

IN u signal:

the signal to send (see signal(7))

IN b to_process_group:

whether to send the signal to the process group

The CreateUpdateMonitor() method

CreateUpdateMonitor (IN  a{sv} options,
                     OUT o     handle);

Creates an update monitor object that will emit signals when an update for the caller becomes available, and can be used to install it.

The handle will be of the form /org/freedesktop/portal/Flatpak/update_monitor/SENDER/TOKEN, where SENDER is the caller's unique name, with the initial ':' removed and all '.' replaced by '_', and TOKEN is a unique token that the caller can optionally provide with the 'handle_token' key in the options vardict.

Currently, no other options are accepted.

This was added in version 2 of this interface (available from flatpak 1.5.0 and later).

IN a{sv} options:

Vardict with optional further information

OUT o handle:

Object path for the org.freedesktop.portal.Flatpak.UpdateMonitor object

Signal Details

The "SpawnStarted" signal

SpawnStarted (u pid,
              u relpid);

This is only non-zero if the expose PIDs flag (32) was passed to Spawn(), and it may still be zero if the process exits before its relative PID could be read.

Emitted when a process started by Spawn() has fully started. In other words, Spawn() returns once the sandbox has been started, and this signal is emitted once the process inside itself is started.

Only emitted by version 4 of this interface (available from flatpak 1.8.0 and later) and if the notify start flag (64) was passed to Spawn().

u pid:

the PID of the process that has been started

u relpid:

the PID of the process relative to the current namespace.

The "SpawnExited" signal

SpawnExited (u pid,
             u exit_status);

Emitted when a process started by Spawn() exits. Use g_spawn_check_exit_status(), or the macros such as WIFEXITED documented in waitpid(2), to interpret the exit_status.

This signal is not emitted for processes that were not launched directly by Spawn(), for example if a process launched by Spawn() runs foreground or background child processes.

u pid:

the PID of the process that has ended

u exit_status:

the wait status (see waitpid(2))

Property Details

The "version" property

version  readable   u

The "supports" property

supports  readable   u

Flags marking what optional features are available. The following flags values are supported:

1 (FLATPAK_SPAWN_SUPPORT_FLAGS_EXPOSE_PIDS)

Supports the expose sandbox pids flag of Spawn.

This was added in version 3 of this interface (available from flatpak 1.6.0 and later).


Name

org.freedesktop.portal.Flatpak.UpdateMonitor

Methods

Close  ();
Update (IN  s     parent_window,
        IN  a{sv} options);

Signals

UpdateAvailable (a{sv} update_info);
Progress        (a{sv} info);

Description

Method Details

The Close() method

Close ();

Ends the update monitoring and cancels any ongoing installation.

The Update() method

Update (IN  s     parent_window,
        IN  a{sv} options);

see Common Conventions options: Vardict with optional further information

Asks to install an update of the calling app. During the installation, "Progress" signals will be emitted to communicate the status and progress.

Note that updates are only allowed if the new version has the same permissions (or less) than the currently installed version. If the new version requires a new permission then the operation will fail with the error org.freedesktop.DBus.Error.NotSupported and updates has to be done with the system tools.

Currently, no options are accepted.

IN s parent_window:

Identifier for the application window,

IN a{sv} options:

Signal Details

The "UpdateAvailable" signal

UpdateAvailable (a{sv} update_info);

Gets emitted when a new update is available. This is only sent once with the same information, but can be sent many times if new updates appear.

The following information may be included in the update_info dictionary:

running-commit s

The commit of the currently running instance.

local-commit s

The commit that is currently installed. Restarting the application will cause this commit to be used.

remote-commit s

The commit that is available as an update from the remote. Updating the application will deploy this commit.

a{sv} update_info:

More information about the available update

The "Progress" signal

Progress (a{sv} info);

Gets emitted to indicate progress of the installation. It's undefined exactly how often this is sent, but it will be emitted at least once at the end with non-zero status field. For each successful operation in the update we're also guaranteed to send one (and only one) signal with progress 100.

The following fields may be included in the info:

n_ops u

The number of operations that the update consists of.

op u

The position of the currently active operation.

progress u

The progress of the currently active operation, as a number between 0 and 100.

status u

The overall status of the update.

0: Running
1: Empty. No update to install
2: Done
3: Failed

error s

The error name, sent when status is Failed

error_message s

The error message, sent when status is Failed

a{sv} info:

More information about the update progress

Object Hierarchy

    GObject
    ├── FlatpakRef
       ├── FlatpakBundleRef
       ├── FlatpakInstalledRef
       ├── FlatpakRelatedRef
       ╰── FlatpakRemoteRef
    ├── FlatpakInstallation
    ├── FlatpakInstance
    ├── FlatpakRemote
    ├── FlatpakTransaction
    ├── FlatpakTransactionOperation
    ╰── FlatpakTransactionProgress

API Index

I

FlatpakInstallation, struct in FlatpakInstallation
flatpak_installation_add_remote, function in FlatpakInstallation
flatpak_installation_cleanup_local_refs_sync, function in FlatpakInstallation
flatpak_installation_create_monitor, function in FlatpakInstallation
flatpak_installation_drop_caches, function in FlatpakInstallation
flatpak_installation_fetch_remote_metadata_sync, function in FlatpakInstallation
flatpak_installation_fetch_remote_ref_sync, function in FlatpakInstallation
flatpak_installation_fetch_remote_ref_sync_full, function in FlatpakInstallation
flatpak_installation_fetch_remote_size_sync, function in FlatpakInstallation
flatpak_installation_get_config, function in FlatpakInstallation
flatpak_installation_get_current_installed_app, function in FlatpakInstallation
flatpak_installation_get_default_languages, function in FlatpakInstallation
flatpak_installation_get_default_locales, function in FlatpakInstallation
flatpak_installation_get_display_name, function in FlatpakInstallation
flatpak_installation_get_id, function in FlatpakInstallation
flatpak_installation_get_installed_ref, function in FlatpakInstallation
flatpak_installation_get_is_user, function in FlatpakInstallation
flatpak_installation_get_min_free_space_bytes, function in FlatpakInstallation
flatpak_installation_get_no_interaction, function in FlatpakInstallation
flatpak_installation_get_path, function in FlatpakInstallation
flatpak_installation_get_priority, function in FlatpakInstallation
flatpak_installation_get_remote_by_name, function in FlatpakInstallation
flatpak_installation_get_storage_type, function in FlatpakInstallation
flatpak_installation_install, function in FlatpakInstallation
flatpak_installation_install_bundle, function in FlatpakInstallation
flatpak_installation_install_full, function in FlatpakInstallation
flatpak_installation_install_ref_file, function in FlatpakInstallation
flatpak_installation_launch, function in FlatpakInstallation
flatpak_installation_launch_full, function in FlatpakInstallation
flatpak_installation_list_installed_refs, function in FlatpakInstallation
flatpak_installation_list_installed_refs_by_kind, function in FlatpakInstallation
flatpak_installation_list_installed_refs_for_update, function in FlatpakInstallation
flatpak_installation_list_installed_related_refs_sync, function in FlatpakInstallation
flatpak_installation_list_remotes, function in FlatpakInstallation
flatpak_installation_list_remotes_by_type, function in FlatpakInstallation
flatpak_installation_list_remote_refs_sync, function in FlatpakInstallation
flatpak_installation_list_remote_refs_sync_full, function in FlatpakInstallation
flatpak_installation_list_remote_related_refs_sync, function in FlatpakInstallation
flatpak_installation_list_unused_refs, function in FlatpakInstallation
flatpak_installation_load_app_overrides, function in FlatpakInstallation
flatpak_installation_modify_remote, function in FlatpakInstallation
flatpak_installation_new_for_path, function in FlatpakInstallation
flatpak_installation_new_system, function in FlatpakInstallation
flatpak_installation_new_system_with_id, function in FlatpakInstallation
flatpak_installation_new_user, function in FlatpakInstallation
flatpak_installation_prune_local_repo, function in FlatpakInstallation
flatpak_installation_remove_local_ref_sync, function in FlatpakInstallation
flatpak_installation_remove_remote, function in FlatpakInstallation
flatpak_installation_run_triggers, function in FlatpakInstallation
flatpak_installation_set_config_sync, function in FlatpakInstallation
flatpak_installation_set_no_interaction, function in FlatpakInstallation
flatpak_installation_uninstall, function in FlatpakInstallation
flatpak_installation_uninstall_full, function in FlatpakInstallation
flatpak_installation_update, function in FlatpakInstallation
flatpak_installation_update_appstream_full_sync, function in FlatpakInstallation
flatpak_installation_update_appstream_sync, function in FlatpakInstallation
flatpak_installation_update_full, function in FlatpakInstallation
flatpak_installation_update_remote_sync, function in FlatpakInstallation
FlatpakInstalledRef, struct in FlatpakInstalledRef
FlatpakInstalledRef:appdata-content-rating, object property in FlatpakInstalledRef
FlatpakInstalledRef:appdata-content-rating-type, object property in FlatpakInstalledRef
FlatpakInstalledRef:appdata-license, object property in FlatpakInstalledRef
FlatpakInstalledRef:appdata-name, object property in FlatpakInstalledRef
FlatpakInstalledRef:appdata-summary, object property in FlatpakInstalledRef
FlatpakInstalledRef:appdata-version, object property in FlatpakInstalledRef
FlatpakInstalledRef:deploy-dir, object property in FlatpakInstalledRef
FlatpakInstalledRef:end-of-life, object property in FlatpakInstalledRef
FlatpakInstalledRef:end-of-life-rebase, object property in FlatpakInstalledRef
FlatpakInstalledRef:installed-size, object property in FlatpakInstalledRef
FlatpakInstalledRef:is-current, object property in FlatpakInstalledRef
FlatpakInstalledRef:latest-commit, object property in FlatpakInstalledRef
FlatpakInstalledRef:origin, object property in FlatpakInstalledRef
FlatpakInstalledRef:subpaths, object property in FlatpakInstalledRef
flatpak_installed_ref_get_appdata_content_rating, function in FlatpakInstalledRef
flatpak_installed_ref_get_appdata_content_rating_type, function in FlatpakInstalledRef
flatpak_installed_ref_get_appdata_license, function in FlatpakInstalledRef
flatpak_installed_ref_get_appdata_name, function in FlatpakInstalledRef
flatpak_installed_ref_get_appdata_summary, function in FlatpakInstalledRef
flatpak_installed_ref_get_appdata_version, function in FlatpakInstalledRef
flatpak_installed_ref_get_deploy_dir, function in FlatpakInstalledRef
flatpak_installed_ref_get_eol, function in FlatpakInstalledRef
flatpak_installed_ref_get_eol_rebase, function in FlatpakInstalledRef
flatpak_installed_ref_get_installed_size, function in FlatpakInstalledRef
flatpak_installed_ref_get_is_current, function in FlatpakInstalledRef
flatpak_installed_ref_get_latest_commit, function in FlatpakInstalledRef
flatpak_installed_ref_get_origin, function in FlatpakInstalledRef
flatpak_installed_ref_get_subpaths, function in FlatpakInstalledRef
flatpak_installed_ref_load_appdata, function in FlatpakInstalledRef
flatpak_installed_ref_load_metadata, function in FlatpakInstalledRef
FlatpakInstallFlags, enum in FlatpakInstallation
FlatpakInstance, struct in FlatpakInstance
flatpak_instance_get_all, function in FlatpakInstance
flatpak_instance_get_app, function in FlatpakInstance
flatpak_instance_get_arch, function in FlatpakInstance
flatpak_instance_get_branch, function in FlatpakInstance
flatpak_instance_get_child_pid, function in FlatpakInstance
flatpak_instance_get_commit, function in FlatpakInstance
flatpak_instance_get_id, function in FlatpakInstance
flatpak_instance_get_info, function in FlatpakInstance
flatpak_instance_get_pid, function in FlatpakInstance
flatpak_instance_get_runtime, function in FlatpakInstance
flatpak_instance_get_runtime_commit, function in FlatpakInstance
flatpak_instance_is_running, function in FlatpakInstance

R

FlatpakRef, struct in FlatpakRef
FlatpakRef:arch, object property in FlatpakRef
FlatpakRef:branch, object property in FlatpakRef
FlatpakRef:collection-id, object property in FlatpakRef
FlatpakRef:commit, object property in FlatpakRef
FlatpakRef:kind, object property in FlatpakRef
FlatpakRef:name, object property in FlatpakRef
FlatpakRefKind, enum in FlatpakRef
flatpak_ref_format_ref, function in FlatpakRef
flatpak_ref_get_arch, function in FlatpakRef
flatpak_ref_get_branch, function in FlatpakRef
flatpak_ref_get_collection_id, function in FlatpakRef
flatpak_ref_get_commit, function in FlatpakRef
flatpak_ref_get_kind, function in FlatpakRef
flatpak_ref_get_name, function in FlatpakRef
flatpak_ref_parse, function in FlatpakRef
FlatpakRelatedRef, struct in FlatpakRelatedRef
FlatpakRelatedRef:should-autoprune, object property in FlatpakRelatedRef
FlatpakRelatedRef:should-delete, object property in FlatpakRelatedRef
FlatpakRelatedRef:should-download, object property in FlatpakRelatedRef
FlatpakRelatedRef:subpaths, object property in FlatpakRelatedRef
flatpak_related_ref_get_subpaths, function in FlatpakRelatedRef
flatpak_related_ref_new, function in FlatpakRelatedRef
flatpak_related_ref_should_autoprune, function in FlatpakRelatedRef
flatpak_related_ref_should_delete, function in FlatpakRelatedRef
flatpak_related_ref_should_download, function in FlatpakRelatedRef
FlatpakRemote, struct in FlatpakRemote
FlatpakRemote:name, object property in FlatpakRemote
FlatpakRemote:type, object property in FlatpakRemote
FlatpakRemoteRef, struct in FlatpakRemoteRef
FlatpakRemoteRef:download-size, object property in FlatpakRemoteRef
FlatpakRemoteRef:end-of-life, object property in FlatpakRemoteRef
FlatpakRemoteRef:end-of-life-rebase, object property in FlatpakRemoteRef
FlatpakRemoteRef:installed-size, object property in FlatpakRemoteRef
FlatpakRemoteRef:metadata, object property in FlatpakRemoteRef
FlatpakRemoteRef:remote-name, object property in FlatpakRemoteRef
FlatpakRemoteType, enum in FlatpakRemote
flatpak_remote_get_appstream_dir, function in FlatpakRemote
flatpak_remote_get_appstream_timestamp, function in FlatpakRemote
flatpak_remote_get_collection_id, function in FlatpakRemote
flatpak_remote_get_comment, function in FlatpakRemote
flatpak_remote_get_default_branch, function in FlatpakRemote
flatpak_remote_get_description, function in FlatpakRemote
flatpak_remote_get_disabled, function in FlatpakRemote
flatpak_remote_get_filter, function in FlatpakRemote
flatpak_remote_get_gpg_verify, function in FlatpakRemote
flatpak_remote_get_homepage, function in FlatpakRemote
flatpak_remote_get_icon, function in FlatpakRemote
flatpak_remote_get_main_ref, function in FlatpakRemote
flatpak_remote_get_name, function in FlatpakRemote
flatpak_remote_get_nodeps, function in FlatpakRemote
flatpak_remote_get_noenumerate, function in FlatpakRemote
flatpak_remote_get_prio, function in FlatpakRemote
flatpak_remote_get_remote_type, function in FlatpakRemote
flatpak_remote_get_title, function in FlatpakRemote
flatpak_remote_get_url, function in FlatpakRemote
flatpak_remote_new, function in FlatpakRemote
flatpak_remote_new_from_file, function in FlatpakRemote
flatpak_remote_ref_get_download_size, function in FlatpakRemoteRef
flatpak_remote_ref_get_eol, function in FlatpakRemoteRef
flatpak_remote_ref_get_eol_rebase, function in FlatpakRemoteRef
flatpak_remote_ref_get_installed_size, function in FlatpakRemoteRef
flatpak_remote_ref_get_metadata, function in FlatpakRemoteRef
flatpak_remote_ref_get_remote_name, function in FlatpakRemoteRef
flatpak_remote_set_collection_id, function in FlatpakRemote
flatpak_remote_set_comment, function in FlatpakRemote
flatpak_remote_set_default_branch, function in FlatpakRemote
flatpak_remote_set_description, function in FlatpakRemote
flatpak_remote_set_disabled, function in FlatpakRemote
flatpak_remote_set_filter, function in FlatpakRemote
flatpak_remote_set_gpg_key, function in FlatpakRemote
flatpak_remote_set_gpg_verify, function in FlatpakRemote
flatpak_remote_set_homepage, function in FlatpakRemote
flatpak_remote_set_icon, function in FlatpakRemote
flatpak_remote_set_main_ref, function in FlatpakRemote
flatpak_remote_set_nodeps, function in FlatpakRemote
flatpak_remote_set_noenumerate, function in FlatpakRemote
flatpak_remote_set_prio, function in FlatpakRemote
flatpak_remote_set_title, function in FlatpakRemote
flatpak_remote_set_url, function in FlatpakRemote

T

FlatpakTransaction, struct in FlatpakTransaction
FlatpakTransaction::add-new-remote, object signal in FlatpakTransaction
FlatpakTransaction::basic-auth-start, object signal in FlatpakTransaction
FlatpakTransaction::choose-remote-for-ref, object signal in FlatpakTransaction
FlatpakTransaction::end-of-lifed, object signal in FlatpakTransaction
FlatpakTransaction::end-of-lifed-with-rebase, object signal in FlatpakTransaction
FlatpakTransaction::install-authenticator, object signal in FlatpakTransaction
FlatpakTransaction::new-operation, object signal in FlatpakTransaction
FlatpakTransaction::operation-done, object signal in FlatpakTransaction
FlatpakTransaction::operation-error, object signal in FlatpakTransaction
FlatpakTransaction::ready, object signal in FlatpakTransaction
FlatpakTransaction::ready-pre-auth, object signal in FlatpakTransaction
FlatpakTransaction::webflow-done, object signal in FlatpakTransaction
FlatpakTransaction::webflow-start, object signal in FlatpakTransaction
FlatpakTransaction:installation, object property in FlatpakTransaction
FlatpakTransactionErrorDetails, enum in FlatpakTransaction
FlatpakTransactionOperation, struct in FlatpakTransactionOperation
FlatpakTransactionOperationType, enum in FlatpakTransaction
FlatpakTransactionProgress, struct in FlatpakTransactionProgress
FlatpakTransactionProgress::changed, object signal in FlatpakTransactionProgress
FlatpakTransactionRemoteReason, enum in FlatpakTransaction
FlatpakTransactionResult, enum in FlatpakTransaction
flatpak_transaction_abort_webflow, function in FlatpakTransaction
flatpak_transaction_add_default_dependency_sources, function in FlatpakTransaction
flatpak_transaction_add_dependency_source, function in FlatpakTransaction
flatpak_transaction_add_install, function in FlatpakTransaction
flatpak_transaction_add_install_bundle, function in FlatpakTransaction
flatpak_transaction_add_install_flatpakref, function in FlatpakTransaction
flatpak_transaction_add_rebase, function in FlatpakTransaction
flatpak_transaction_add_uninstall, function in FlatpakTransaction
flatpak_transaction_add_update, function in FlatpakTransaction
flatpak_transaction_get_current_operation, function in FlatpakTransaction
flatpak_transaction_get_installation, function in FlatpakTransaction
flatpak_transaction_get_no_deploy, function in FlatpakTransaction
flatpak_transaction_get_no_pull, function in FlatpakTransaction
flatpak_transaction_get_operations, function in FlatpakTransaction
flatpak_transaction_get_parent_window, function in FlatpakTransaction
flatpak_transaction_is_empty, function in FlatpakTransaction
flatpak_transaction_new_for_installation, function in FlatpakTransaction
flatpak_transaction_operation_get_bundle_path, function in FlatpakTransactionOperation
flatpak_transaction_operation_get_commit, function in FlatpakTransactionOperation
flatpak_transaction_operation_get_download_size, function in FlatpakTransactionOperation
flatpak_transaction_operation_get_installed_size, function in FlatpakTransactionOperation
flatpak_transaction_operation_get_metadata, function in FlatpakTransactionOperation
flatpak_transaction_operation_get_old_metadata, function in FlatpakTransactionOperation
flatpak_transaction_operation_get_operation_type, function in FlatpakTransactionOperation
flatpak_transaction_operation_get_ref, function in FlatpakTransactionOperation
flatpak_transaction_operation_get_remote, function in FlatpakTransactionOperation
flatpak_transaction_operation_type_to_string, function in FlatpakTransactionOperation
flatpak_transaction_progress_get_bytes_transferred, function in FlatpakTransactionProgress
flatpak_transaction_progress_get_is_estimating, function in FlatpakTransactionProgress
flatpak_transaction_progress_get_progress, function in FlatpakTransactionProgress
flatpak_transaction_progress_get_start_time, function in FlatpakTransactionProgress
flatpak_transaction_progress_get_status, function in FlatpakTransactionProgress
flatpak_transaction_progress_set_update_frequency, function in FlatpakTransactionProgress
flatpak_transaction_run, function in FlatpakTransaction
flatpak_transaction_set_default_arch, function in FlatpakTransaction
flatpak_transaction_set_disable_dependencies, function in FlatpakTransaction
flatpak_transaction_set_disable_prune, function in FlatpakTransaction
flatpak_transaction_set_disable_related, function in FlatpakTransaction
flatpak_transaction_set_disable_static_deltas, function in FlatpakTransaction
flatpak_transaction_set_force_uninstall, function in FlatpakTransaction
flatpak_transaction_set_no_deploy, function in FlatpakTransaction
flatpak_transaction_set_no_pull, function in FlatpakTransaction
flatpak_transaction_set_parent_window, function in FlatpakTransaction
flatpak_transaction_set_reinstall, function in FlatpakTransaction

Annotation Glossary

A

allow-none

NULL is OK, both for passing and for returning.

array

Parameter points to an array of items.

C

closure

This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.

E

element-type

Generics and defining elements of containers and arrays.

N

nullable

NULL may be passed as the value in, out, in-out; or as a return value.

O

out

Parameter for returning results. Default is transfer full.

S

scope call

The callback is valid only during the call to the method.

T

transfer container

Free data container after the code is done.

transfer full

Free data after the code is done.

transfer none

Don't free data after the code is done.

type

Override the parsed C type with given type.