Track extension-of in deploy data

This tracks for installed apps if they are extensions of some
ref. This will be useful later to avoid updating extensions of
masked apps.
This commit is contained in:
Alexander Larsson
2019-10-01 14:05:27 +02:00
committed by Alexander Larsson
parent d91660fe2a
commit 84eb154e83
2 changed files with 16 additions and 1 deletions

View File

@@ -32,8 +32,9 @@
* The version field was added in flatpak 1.2, anything before is 0.
*
* Version 1 added appdata-name/summary/version/license
* Version 2 added extension-of
*/
#define FLATPAK_DEPLOY_VERSION_CURRENT 1
#define FLATPAK_DEPLOY_VERSION_CURRENT 2
#define FLATPAK_DEPLOY_VERSION_ANY 0
#define FLATPAK_TYPE_DIR flatpak_dir_get_type ()
@@ -362,6 +363,7 @@ const char * flatpak_deploy_data_get_alt_id (GVariant *deploy_data);
const char * flatpak_deploy_data_get_eol (GVariant *deploy_data);
const char * flatpak_deploy_data_get_eol_rebase (GVariant *deploy_data);
const char * flatpak_deploy_data_get_runtime (GVariant *deploy_data);
const char * flatpak_deploy_data_get_extension_of (GVariant *deploy_data);
const char * flatpak_deploy_data_get_appdata_name (GVariant *deploy_data);
const char * flatpak_deploy_data_get_appdata_summary (GVariant *deploy_data);
const char * flatpak_deploy_data_get_appdata_version (GVariant *deploy_data);

View File

@@ -2368,6 +2368,12 @@ flatpak_deploy_data_get_runtime (GVariant *deploy_data)
return flatpak_deploy_data_get_string (deploy_data, "runtime");
}
const char *
flatpak_deploy_data_get_extension_of (GVariant *deploy_data)
{
return flatpak_deploy_data_get_string (deploy_data, "extension-of");
}
const char *
flatpak_deploy_data_get_appdata_name (GVariant *deploy_data)
{
@@ -2510,6 +2516,7 @@ flatpak_dir_new_deploy_data (FlatpakDir *self,
char *empty_subpaths[] = {NULL};
GVariantBuilder metadata_builder;
g_autofree char *application_runtime = NULL;
g_autofree char *extension_of = NULL;
const char *alt_id = NULL;
const char *eol = NULL;
const char *eol_rebase = NULL;
@@ -2521,6 +2528,9 @@ flatpak_dir_new_deploy_data (FlatpakDir *self,
application_runtime = g_key_file_get_string (metadata,
FLATPAK_METADATA_GROUP_APPLICATION,
FLATPAK_METADATA_KEY_RUNTIME, NULL);
extension_of = g_key_file_get_string (metadata,
FLATPAK_METADATA_GROUP_EXTENSION_OF,
FLATPAK_METADATA_KEY_REF, NULL);
g_variant_builder_init (&metadata_builder, G_VARIANT_TYPE ("a{sv}"));
g_variant_builder_add (&metadata_builder, "{s@v}", "deploy-version",
@@ -2537,6 +2547,9 @@ flatpak_dir_new_deploy_data (FlatpakDir *self,
if (application_runtime)
g_variant_builder_add (&metadata_builder, "{s@v}", "runtime",
g_variant_new_variant (g_variant_new_string (application_runtime)));
if (extension_of)
g_variant_builder_add (&metadata_builder, "{s@v}", "extension-of",
g_variant_new_variant (g_variant_new_string (extension_of)));
if (previous_ids)
g_variant_builder_add (&metadata_builder, "{s@v}", "previous-ids",