diff --git a/common/flatpak-dir-private.h b/common/flatpak-dir-private.h index 1556f8ca..cd733c78 100644 --- a/common/flatpak-dir-private.h +++ b/common/flatpak-dir-private.h @@ -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); diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c index 73fec071..e41b0c25 100644 --- a/common/flatpak-dir.c +++ b/common/flatpak-dir.c @@ -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",