From 489bfddfb37970fceda29359ed8cdab79bb3c770 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Fri, 7 Jul 2017 16:02:19 +0100 Subject: [PATCH] common: Add and use constants for flatpak-metadata(5) groups and keys This makes it easier to avoid typos, and also makes it easier to see what groups and keys are in use. In the header file, they are clustered according to the group in which the keys are used. Signed-off-by: Simon McVittie --- app/flatpak-builtins-build-finish.c | 61 ++++++++++++++++++----------- app/flatpak-builtins-build.c | 37 +++++++++++------ builder/builder-manifest.c | 19 ++++++--- common/flatpak-dir.c | 44 +++++++++++---------- common/flatpak-run.c | 45 ++++++++++++++------- common/flatpak-run.h | 53 +++++++++++++++++++++++-- common/flatpak-utils.c | 54 +++++++++++++++++-------- document-portal/xdp-main.c | 12 ++++-- 8 files changed, 226 insertions(+), 99 deletions(-) diff --git a/app/flatpak-builtins-build-finish.c b/app/flatpak-builtins-build-finish.c index 8cc7be1c..eb5fb5d9 100644 --- a/app/flatpak-builtins-build-finish.c +++ b/app/flatpak-builtins-build-finish.c @@ -258,9 +258,9 @@ update_metadata (GFile *base, FlatpakContext *arg_context, gboolean is_runtime, goto out; if (is_runtime) - group = "Runtime"; + group = FLATPAK_METADATA_GROUP_RUNTIME; else - group = "Application"; + group = FLATPAK_METADATA_GROUP_APPLICATION; path = g_file_get_path (metadata); keyfile = g_key_file_new (); @@ -269,8 +269,13 @@ update_metadata (GFile *base, FlatpakContext *arg_context, gboolean is_runtime, if (opt_sdk != NULL || opt_runtime != NULL) { - g_autofree char *old_runtime = g_key_file_get_string (keyfile, group, "runtime", NULL); - g_autofree char *old_sdk = g_key_file_get_string (keyfile, group, "sdk", NULL); + g_autofree char *old_runtime = g_key_file_get_string (keyfile, + group, + FLATPAK_METADATA_KEY_RUNTIME, NULL); + g_autofree char *old_sdk = g_key_file_get_string (keyfile, + group, + FLATPAK_METADATA_KEY_SDK, + NULL); const char *old_sdk_arch = NULL; const char *old_runtime_arch = NULL; const char *old_sdk_branch = NULL; @@ -316,7 +321,7 @@ update_metadata (GFile *base, FlatpakContext *arg_context, gboolean is_runtime, return FALSE; ref = flatpak_build_untyped_ref (id, branch, arch); - g_key_file_set_string (keyfile, group, "sdk", ref); + g_key_file_set_string (keyfile, group, FLATPAK_METADATA_KEY_SDK, ref); } if (opt_runtime) @@ -333,24 +338,24 @@ update_metadata (GFile *base, FlatpakContext *arg_context, gboolean is_runtime, return FALSE; ref = flatpak_build_untyped_ref (id, branch, arch); - g_key_file_set_string (keyfile, group, "runtime", ref); + g_key_file_set_string (keyfile, group, FLATPAK_METADATA_KEY_RUNTIME, ref); } } if (!is_runtime) { - if (g_key_file_has_key (keyfile, group, "command", NULL)) + if (g_key_file_has_key (keyfile, group, FLATPAK_METADATA_KEY_COMMAND, NULL)) { g_debug ("Command key is present"); if (opt_command) - g_key_file_set_string (keyfile, group, "command", opt_command); + g_key_file_set_string (keyfile, group, FLATPAK_METADATA_KEY_COMMAND, opt_command); } else if (opt_command) { g_debug ("Using explicitly provided command %s", opt_command); - g_key_file_set_string (keyfile, group, "command", opt_command); + g_key_file_set_string (keyfile, group, FLATPAK_METADATA_KEY_COMMAND, opt_command); } else { @@ -386,7 +391,7 @@ update_metadata (GFile *base, FlatpakContext *arg_context, gboolean is_runtime, if (command) { g_print ("Using %s as command\n", command); - g_key_file_set_string (keyfile, group, "command", command); + g_key_file_set_string (keyfile, group, FLATPAK_METADATA_KEY_COMMAND, command); } else { @@ -427,19 +432,26 @@ update_metadata (GFile *base, FlatpakContext *arg_context, gboolean is_runtime, goto out; } - uri_key = g_strconcat ("uri", suffix, NULL); - name_key = g_strconcat ("name", suffix, NULL); - checksum_key = g_strconcat ("checksum", suffix, NULL); - size_key = g_strconcat ("size", suffix, NULL); - installed_size_key = g_strconcat ("installed-size", suffix, NULL); + uri_key = g_strconcat (FLATPAK_METADATA_KEY_EXTRA_DATA_URI, suffix, NULL); + name_key = g_strconcat (FLATPAK_METADATA_KEY_EXTRA_DATA_NAME, suffix, NULL); + checksum_key = g_strconcat (FLATPAK_METADATA_KEY_EXTRA_DATA_CHECKSUM, + suffix, NULL); + size_key = g_strconcat (FLATPAK_METADATA_KEY_EXTRA_DATA_SIZE, suffix, NULL); + installed_size_key = g_strconcat (FLATPAK_METADATA_KEY_EXTRA_DATA_INSTALLED_SIZE, + suffix, NULL); if (strlen (elements[0]) > 0) - g_key_file_set_string (keyfile, "Extra Data", name_key, elements[0]); - g_key_file_set_string (keyfile, "Extra Data", checksum_key, elements[1]); - g_key_file_set_string (keyfile, "Extra Data", size_key, elements[2]); + g_key_file_set_string (keyfile, FLATPAK_METADATA_GROUP_EXTRA_DATA, + name_key, elements[0]); + g_key_file_set_string (keyfile, FLATPAK_METADATA_GROUP_EXTRA_DATA, + checksum_key, elements[1]); + g_key_file_set_string (keyfile, FLATPAK_METADATA_GROUP_EXTRA_DATA, + size_key, elements[2]); if (strlen (elements[3]) > 0) - g_key_file_set_string (keyfile, "Extra Data", installed_size_key, elements[3]); - g_key_file_set_string (keyfile, "Extra Data", uri_key, elements[4]); + g_key_file_set_string (keyfile, FLATPAK_METADATA_GROUP_EXTRA_DATA, + installed_size_key, elements[3]); + g_key_file_set_string (keyfile, FLATPAK_METADATA_GROUP_EXTRA_DATA, + uri_key, elements[4]); } for (i = 0; opt_metadata != NULL && opt_metadata[i] != NULL; i++) @@ -467,7 +479,8 @@ update_metadata (GFile *base, FlatpakContext *arg_context, gboolean is_runtime, goto out; } - groupname = g_strdup_printf ("Extension %s", elements[0]); + groupname = g_strconcat (FLATPAK_METADATA_GROUP_PREFIX_EXTENSION, + elements[0], NULL); g_key_file_set_string (keyfile, groupname, elements[1], elements[2] ? elements[2] : "true"); } @@ -531,10 +544,12 @@ flatpak_builtin_build_finish (int argc, char **argv, GCancellable *cancellable, if (!g_key_file_load_from_data (metakey, metadata_contents, metadata_size, 0, error)) return FALSE; - id = g_key_file_get_string (metakey, "Application", "name", NULL); + id = g_key_file_get_string (metakey, FLATPAK_METADATA_GROUP_APPLICATION, + FLATPAK_METADATA_KEY_NAME, NULL); if (id == NULL) { - id = g_key_file_get_string (metakey, "Runtime", "name", NULL); + id = g_key_file_get_string (metakey, FLATPAK_METADATA_GROUP_RUNTIME, + FLATPAK_METADATA_KEY_NAME, NULL); if (id == NULL) return flatpak_fail (error, _("No name specified in the metadata")); is_runtime = TRUE; diff --git a/app/flatpak-builtins-build.c b/app/flatpak-builtins-build.c index ff82f489..e1939271 100644 --- a/app/flatpak-builtins-build.c +++ b/app/flatpak-builtins-build.c @@ -97,6 +97,7 @@ flatpak_builtin_build (int argc, char **argv, GCancellable *cancellable, GError g_auto(GStrv) runtime_ref_parts = NULL; FlatpakRunFlags run_flags; const char *group = NULL; + const char *runtime_key = NULL; const char *dest = NULL; gboolean is_app = FALSE; gboolean is_extension = FALSE; @@ -146,19 +147,21 @@ flatpak_builtin_build (int argc, char **argv, GCancellable *cancellable, GError if (!g_key_file_load_from_data (metakey, metadata_contents, metadata_size, 0, error)) return FALSE; - if (g_key_file_has_group (metakey, "Application")) + if (g_key_file_has_group (metakey, FLATPAK_METADATA_GROUP_APPLICATION)) { - group = "Application"; + group = FLATPAK_METADATA_GROUP_APPLICATION; is_app = TRUE; } - else if (g_key_file_has_group (metakey, "Runtime")) + else if (g_key_file_has_group (metakey, FLATPAK_METADATA_GROUP_RUNTIME)) { - group = "Runtime"; + group = FLATPAK_METADATA_GROUP_RUNTIME; } else return flatpak_fail (error, _("metadata invalid, not application or runtime")); - extensionof_ref = g_key_file_get_string (metakey, "ExtensionOf", "ref", NULL); + extensionof_ref = g_key_file_get_string (metakey, + FLATPAK_METADATA_GROUP_EXTENSION_OF, + FLATPAK_METADATA_KEY_REF, NULL); if (extensionof_ref != NULL) { is_extension = TRUE; @@ -167,11 +170,16 @@ flatpak_builtin_build (int argc, char **argv, GCancellable *cancellable, GError } - id = g_key_file_get_string (metakey, group, "name", error); + id = g_key_file_get_string (metakey, group, FLATPAK_METADATA_KEY_NAME, error); if (id == NULL) return FALSE; - runtime = g_key_file_get_string (metakey, group, opt_runtime ? "runtime" : "sdk", error); + if (opt_runtime) + runtime_key = FLATPAK_METADATA_KEY_RUNTIME; + else + runtime_key = FLATPAK_METADATA_KEY_SDK; + + runtime = g_key_file_get_string (metakey, group, runtime_key, error); if (runtime == NULL) return FALSE; @@ -222,7 +230,7 @@ flatpak_builtin_build (int argc, char **argv, GCancellable *cancellable, GError x_metakey = flatpak_deploy_get_metadata (extensionof_deploy); - x_group = g_strdup_printf ("Extension %s", id); + x_group = g_strconcat (FLATPAK_METADATA_GROUP_PREFIX_EXTENSION, id, NULL); if (!g_key_file_has_group (x_metakey, x_group)) { /* Failed, look for subdirectories=true parent */ @@ -232,8 +240,11 @@ flatpak_builtin_build (int argc, char **argv, GCancellable *cancellable, GError { char *parent_id = g_strndup (id, last_dot - id); g_free (x_group); - x_group = g_strdup_printf ("Extension %s", parent_id); - if (g_key_file_get_boolean (x_metakey, x_group, "subdirectories", NULL)) + x_group = g_strconcat (FLATPAK_METADATA_GROUP_PREFIX_EXTENSION, + parent_id, NULL); + if (g_key_file_get_boolean (x_metakey, x_group, + FLATPAK_METADATA_KEY_SUBDIRECTORIES, + NULL)) x_subdir = last_dot + 1; } @@ -241,12 +252,14 @@ flatpak_builtin_build (int argc, char **argv, GCancellable *cancellable, GError return flatpak_fail (error, _("No extension point matching %s in %s"), id, extensionof_ref); } - x_dir = g_key_file_get_string (x_metakey, x_group, "directory", error); + x_dir = g_key_file_get_string (x_metakey, x_group, + FLATPAK_METADATA_KEY_DIRECTORY, error); if (x_dir == NULL) return FALSE; x_subdir_suffix = g_key_file_get_string (x_metakey, x_group, - "subdirectory-suffix", NULL); + FLATPAK_METADATA_KEY_SUBDIRECTORY_SUFFIX, + NULL); if (is_app_extension) { diff --git a/builder/builder-manifest.c b/builder/builder-manifest.c index f2521db1..dfcfb079 100644 --- a/builder/builder-manifest.c +++ b/builder/builder-manifest.c @@ -2221,7 +2221,9 @@ builder_manifest_finish (BuilderManifest *self, for (i = 0; self->inherit_extensions[i] != NULL; i++) { - g_autofree char *group = g_strdup_printf ("Extension %s", self->inherit_extensions[i]); + g_autofree char *group = g_strconcat (FLATPAK_METADATA_GROUP_PREFIX_EXTENSION, + self->inherit_extensions[i], + NULL); g_auto(GStrv) keys = NULL; int j; @@ -2240,9 +2242,13 @@ builder_manifest_finish (BuilderManifest *self, g_key_file_set_value (keyfile, group, keys[j], value); } - if (!g_key_file_has_key (keyfile, group, "version", NULL) && - !g_key_file_has_key (keyfile, group, "versions", NULL)) - g_key_file_set_value (keyfile, group, "version", parent_version); + if (!g_key_file_has_key (keyfile, group, + FLATPAK_METADATA_KEY_VERSION, NULL) && + !g_key_file_has_key (keyfile, group, + FLATPAK_METADATA_KEY_VERSIONS, NULL)) + g_key_file_set_value (keyfile, group, + FLATPAK_METADATA_KEY_VERSION, + parent_version); } if (!g_key_file_save_to_file (keyfile, @@ -2565,7 +2571,7 @@ builder_manifest_create_platform (BuilderManifest *self, g_autoptr(GFile) dest_metadata = g_file_get_child (app_dir, "metadata.platform"); g_autoptr(GKeyFile) keyfile = g_key_file_new (); g_auto(GStrv) groups = NULL; - g_autofree char *sdk_group_prefix = g_strdup_printf ("Extension %s.", self->id); + g_autofree char *sdk_group_prefix = g_strconcat (FLATPAK_METADATA_GROUP_PREFIX_EXTENSION, self->id, NULL); int j; if (!g_key_file_load_from_file (keyfile, @@ -2577,7 +2583,8 @@ builder_manifest_create_platform (BuilderManifest *self, return FALSE; } - g_key_file_set_string (keyfile, "Runtime", "name", self->id_platform); + g_key_file_set_string (keyfile, FLATPAK_METADATA_GROUP_RUNTIME, + FLATPAK_METADATA_KEY_NAME, self->id_platform); groups = g_key_file_get_groups (keyfile, NULL); for (j = 0; groups[j] != NULL; j++) diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c index 45c938d1..746837a7 100644 --- a/common/flatpak-dir.c +++ b/common/flatpak-dir.c @@ -4307,7 +4307,7 @@ apply_extra_data (FlatpakDir *self, g_autoptr(GArray) fd_array = NULL; g_auto(GStrv) envp = NULL; int exit_status; - const char *group = "Application"; + const char *group = FLATPAK_METADATA_GROUP_APPLICATION; g_autoptr(GError) local_error = NULL; apply_extra_file = g_file_resolve_relative_path (checkoutdir, "files/bin/apply_extra"); @@ -4323,11 +4323,13 @@ apply_extra_data (FlatpakDir *self, if (!g_key_file_load_from_data (metakey, metadata_contents, metadata_size, 0, error)) return FALSE; - id = g_key_file_get_string (metakey, group, "name", &local_error); + id = g_key_file_get_string (metakey, group, FLATPAK_METADATA_KEY_NAME, + &local_error); if (id == NULL) { - group = "Runtime"; - id = g_key_file_get_string (metakey, group, "name", NULL); + group = FLATPAK_METADATA_GROUP_RUNTIME; + id = g_key_file_get_string (metakey, group, FLATPAK_METADATA_KEY_NAME, + NULL); if (id == NULL) { g_propagate_error (error, g_steal_pointer (&local_error)); @@ -4336,7 +4338,8 @@ apply_extra_data (FlatpakDir *self, g_clear_error (&local_error); } - runtime = g_key_file_get_string (metakey, group, "runtime", error); + runtime = g_key_file_get_string (metakey, group, + FLATPAK_METADATA_KEY_RUNTIME, error); if (runtime == NULL) return FALSE; @@ -4346,7 +4349,8 @@ apply_extra_data (FlatpakDir *self, if (runtime_ref_parts == NULL) return FALSE; - if (!g_key_file_get_boolean (metakey, "Extra Data", "NoRuntime", NULL)) + if (!g_key_file_get_boolean (metakey, FLATPAK_METADATA_GROUP_EXTRA_DATA, + FLATPAK_METADATA_KEY_NO_RUNTIME, NULL)) { runtime_deploy = flatpak_find_deploy_for_ref (runtime_ref, cancellable, error); if (runtime_deploy == NULL) @@ -8649,19 +8653,19 @@ flatpak_dir_find_remote_related (FlatpakDir *self, { char *extension; - if (g_str_has_prefix (groups[i], "Extension ") && - *(extension = (groups[i] + strlen ("Extension "))) != 0) + if (g_str_has_prefix (groups[i], FLATPAK_METADATA_GROUP_PREFIX_EXTENSION) && + *(extension = (groups[i] + strlen (FLATPAK_METADATA_GROUP_PREFIX_EXTENSION))) != 0) { g_autofree char *version = g_key_file_get_string (metakey, groups[i], - "version", NULL); + FLATPAK_METADATA_KEY_VERSION, NULL); gboolean subdirectories = g_key_file_get_boolean (metakey, groups[i], - "subdirectories", NULL); + FLATPAK_METADATA_KEY_SUBDIRECTORIES, NULL); gboolean no_autodownload = g_key_file_get_boolean (metakey, groups[i], - "no-autodownload", NULL); + FLATPAK_METADATA_KEY_NO_AUTODOWNLOAD, NULL); g_autofree char *download_if = g_key_file_get_string (metakey, groups[i], - "download-if", NULL); + FLATPAK_METADATA_KEY_DOWNLOAD_IF, NULL); gboolean autodelete = g_key_file_get_boolean (metakey, groups[i], - "autodelete", NULL); + FLATPAK_METADATA_KEY_AUTODELETE, NULL); const char *branch; g_autofree char *extension_ref = NULL; g_autofree char *checksum = NULL; @@ -8781,19 +8785,19 @@ flatpak_dir_find_local_related (FlatpakDir *self, { char *extension; - if (g_str_has_prefix (groups[i], "Extension ") && - *(extension = (groups[i] + strlen ("Extension "))) != 0) + if (g_str_has_prefix (groups[i], FLATPAK_METADATA_GROUP_PREFIX_EXTENSION) && + *(extension = (groups[i] + strlen (FLATPAK_METADATA_GROUP_PREFIX_EXTENSION))) != 0) { g_autofree char *version = g_key_file_get_string (metakey, groups[i], - "version", NULL); + FLATPAK_METADATA_KEY_VERSION, NULL); gboolean subdirectories = g_key_file_get_boolean (metakey, groups[i], - "subdirectories", NULL); + FLATPAK_METADATA_KEY_SUBDIRECTORIES, NULL); gboolean no_autodownload = g_key_file_get_boolean (metakey, groups[i], - "no-autodownload", NULL); + FLATPAK_METADATA_KEY_NO_AUTODOWNLOAD, NULL); g_autofree char *download_if = g_key_file_get_string (metakey, groups[i], - "download-if", NULL); + FLATPAK_METADATA_KEY_DOWNLOAD_IF, NULL); gboolean autodelete = g_key_file_get_boolean (metakey, groups[i], - "autodelete", NULL); + FLATPAK_METADATA_KEY_AUTODELETE, NULL); const char *branch; g_autofree char *extension_ref = NULL; g_autofree char *prefixed_extension_ref = NULL; diff --git a/common/flatpak-run.c b/common/flatpak-run.c index 70cb5b7f..7627b8d4 100644 --- a/common/flatpak-run.c +++ b/common/flatpak-run.c @@ -3489,30 +3489,37 @@ flatpak_run_add_app_info_args (GPtrArray *argv_array, keyfile = g_key_file_new (); if (app_files) - group = "Application"; + group = FLATPAK_METADATA_GROUP_APPLICATION; else - group = "Runtime"; + group = FLATPAK_METADATA_GROUP_RUNTIME; - g_key_file_set_string (keyfile, group, "name", app_id); - g_key_file_set_string (keyfile, group, "runtime", runtime_ref); + g_key_file_set_string (keyfile, group, FLATPAK_METADATA_KEY_NAME, app_id); + g_key_file_set_string (keyfile, group, FLATPAK_METADATA_KEY_RUNTIME, + runtime_ref); if (app_files) { g_autofree char *app_path = g_file_get_path (app_files); - g_key_file_set_string (keyfile, "Instance", "app-path", app_path); + g_key_file_set_string (keyfile, FLATPAK_METADATA_GROUP_INSTANCE, + FLATPAK_METADATA_KEY_APP_PATH, app_path); } runtime_path = g_file_get_path (runtime_files); - g_key_file_set_string (keyfile, "Instance", "runtime-path", runtime_path); + g_key_file_set_string (keyfile, FLATPAK_METADATA_GROUP_INSTANCE, + FLATPAK_METADATA_KEY_RUNTIME_PATH, runtime_path); if (app_branch != NULL) - g_key_file_set_string (keyfile, "Instance", "branch", app_branch); + g_key_file_set_string (keyfile, FLATPAK_METADATA_GROUP_INSTANCE, + FLATPAK_METADATA_KEY_BRANCH, app_branch); - g_key_file_set_string (keyfile, "Instance", "flatpak-version", PACKAGE_VERSION); + g_key_file_set_string (keyfile, FLATPAK_METADATA_GROUP_INSTANCE, + FLATPAK_METADATA_KEY_FLATPAK_VERSION, PACKAGE_VERSION); if ((final_app_context->sockets & FLATPAK_CONTEXT_SOCKET_SESSION_BUS) == 0) - g_key_file_set_boolean (keyfile, "Instance", "session-bus-proxy", TRUE); + g_key_file_set_boolean (keyfile, FLATPAK_METADATA_GROUP_INSTANCE, + FLATPAK_METADATA_KEY_SESSION_BUS_PROXY, TRUE); if ((final_app_context->sockets & FLATPAK_CONTEXT_SOCKET_SYSTEM_BUS) == 0) - g_key_file_set_boolean (keyfile, "Instance", "system-bus-proxy", TRUE); + g_key_file_set_boolean (keyfile, FLATPAK_METADATA_GROUP_INSTANCE, + FLATPAK_METADATA_KEY_SYSTEM_BUS_PROXY, TRUE); flatpak_context_save_metadata (final_app_context, TRUE, keyfile); @@ -4614,10 +4621,17 @@ flatpak_run_app (const char *app_ref, } else { + const gchar *key; + + if ((flags & FLATPAK_RUN_FLAG_DEVEL) != 0) + key = FLATPAK_METADATA_KEY_SDK; + else + key = FLATPAK_METADATA_KEY_RUNTIME, + metakey = flatpak_deploy_get_metadata (app_deploy); - default_runtime = g_key_file_get_string (metakey, "Application", - (flags & FLATPAK_RUN_FLAG_DEVEL) != 0 ? "sdk" : "runtime", - &my_error); + default_runtime = g_key_file_get_string (metakey, + FLATPAK_METADATA_GROUP_APPLICATION, + key, &my_error); if (my_error) { g_propagate_error (error, g_steal_pointer (&my_error)); @@ -4747,7 +4761,10 @@ flatpak_run_app (const char *app_ref, } else if (metakey) { - default_command = g_key_file_get_string (metakey, "Application", "command", &my_error); + default_command = g_key_file_get_string (metakey, + FLATPAK_METADATA_GROUP_APPLICATION, + FLATPAK_METADATA_KEY_COMMAND, + &my_error); if (my_error) { g_propagate_error (error, g_steal_pointer (&my_error)); diff --git a/common/flatpak-run.h b/common/flatpak-run.h index c196c883..8aecc5e4 100644 --- a/common/flatpak-run.h +++ b/common/flatpak-run.h @@ -29,11 +29,18 @@ gboolean flatpak_run_in_transient_unit (const char *app_id, GError **error); +/* See flatpak-metadata(5) */ + +#define FLATPAK_METADATA_GROUP_APPLICATION "Application" +#define FLATPAK_METADATA_GROUP_RUNTIME "Runtime" +#define FLATPAK_METADATA_KEY_COMMAND "command" +#define FLATPAK_METADATA_KEY_NAME "name" +#define FLATPAK_METADATA_KEY_REQUIRED_FLATPAK "required-flatpak" +#define FLATPAK_METADATA_KEY_RUNTIME "runtime" +#define FLATPAK_METADATA_KEY_SDK "sdk" +#define FLATPAK_METADATA_KEY_TAGS "tags" + #define FLATPAK_METADATA_GROUP_CONTEXT "Context" -#define FLATPAK_METADATA_GROUP_SESSION_BUS_POLICY "Session Bus Policy" -#define FLATPAK_METADATA_GROUP_SYSTEM_BUS_POLICY "System Bus Policy" -#define FLATPAK_METADATA_GROUP_PREFIX_POLICY "Policy " -#define FLATPAK_METADATA_GROUP_ENVIRONMENT "Environment" #define FLATPAK_METADATA_KEY_SHARED "shared" #define FLATPAK_METADATA_KEY_SOCKETS "sockets" #define FLATPAK_METADATA_KEY_FILESYSTEMS "filesystems" @@ -41,6 +48,44 @@ gboolean flatpak_run_in_transient_unit (const char *app_id, #define FLATPAK_METADATA_KEY_DEVICES "devices" #define FLATPAK_METADATA_KEY_FEATURES "features" +#define FLATPAK_METADATA_GROUP_INSTANCE "Instance" +#define FLATPAK_METADATA_KEY_APP_PATH "app-path" +#define FLATPAK_METADATA_KEY_BRANCH "branch" +#define FLATPAK_METADATA_KEY_FLATPAK_VERSION "flatpak-version" +#define FLATPAK_METADATA_KEY_RUNTIME_PATH "runtime-path" +#define FLATPAK_METADATA_KEY_SESSION_BUS_PROXY "session-bus-proxy" +#define FLATPAK_METADATA_KEY_SYSTEM_BUS_PROXY "system-bus-proxy" + +#define FLATPAK_METADATA_GROUP_SESSION_BUS_POLICY "Session Bus Policy" +#define FLATPAK_METADATA_GROUP_SYSTEM_BUS_POLICY "System Bus Policy" +#define FLATPAK_METADATA_GROUP_PREFIX_POLICY "Policy " +#define FLATPAK_METADATA_GROUP_ENVIRONMENT "Environment" + +#define FLATPAK_METADATA_GROUP_PREFIX_EXTENSION "Extension " +#define FLATPAK_METADATA_KEY_ADD_LD_PATH "add-ld-path" +#define FLATPAK_METADATA_KEY_AUTODELETE "autodelete" +#define FLATPAK_METADATA_KEY_DIRECTORY "directory" +#define FLATPAK_METADATA_KEY_DOWNLOAD_IF "download-if" +#define FLATPAK_METADATA_KEY_ENABLE_IF "enable-if" +#define FLATPAK_METADATA_KEY_MERGE_DIRS "merge-dirs" +#define FLATPAK_METADATA_KEY_NO_AUTODOWNLOAD "no-autodownload" +#define FLATPAK_METADATA_KEY_SUBDIRECTORIES "subdirectories" +#define FLATPAK_METADATA_KEY_SUBDIRECTORY_SUFFIX "subdirectory-suffix" +#define FLATPAK_METADATA_KEY_VERSION "version" +#define FLATPAK_METADATA_KEY_VERSIONS "versions" + +#define FLATPAK_METADATA_GROUP_EXTRA_DATA "Extra Data" +#define FLATPAK_METADATA_KEY_EXTRA_DATA_CHECKSUM "checksum" +#define FLATPAK_METADATA_KEY_EXTRA_DATA_INSTALLED_SIZE "installed-size" +#define FLATPAK_METADATA_KEY_EXTRA_DATA_NAME "name" +#define FLATPAK_METADATA_KEY_EXTRA_DATA_SIZE "size" +#define FLATPAK_METADATA_KEY_EXTRA_DATA_URI "uri" +#define FLATPAK_METADATA_KEY_NO_RUNTIME "NoRuntime" + +#define FLATPAK_METADATA_GROUP_EXTENSION_OF "ExtensionOf" +#define FLATPAK_METADATA_KEY_PRIORITY "priority" +#define FLATPAK_METADATA_KEY_REF "ref" + extern const char *flatpak_context_sockets[]; extern const char *flatpak_context_devices[]; extern const char *flatpak_context_features[]; diff --git a/common/flatpak-utils.c b/common/flatpak-utils.c index 7253880f..282d4fd7 100644 --- a/common/flatpak-utils.c +++ b/common/flatpak-utils.c @@ -1676,7 +1676,8 @@ parse_app_id_from_fileinfo (int pid) if (errno == ENOENT) { /* No file => on the host */ - g_key_file_set_string (metadata, "Application", "name", ""); + g_key_file_set_string (metadata, FLATPAK_METADATA_GROUP_APPLICATION, + FLATPAK_METADATA_KEY_NAME, ""); return g_steal_pointer (&metadata); } @@ -3351,13 +3352,15 @@ flatpak_appstream_xml_migrate (FlatpakXml *source, return FALSE; if (g_str_has_prefix (ref, "app/")) - group = "Application"; + group = FLATPAK_METADATA_GROUP_APPLICATION; else - group = "Runtime"; + group = FLATPAK_METADATA_GROUP_RUNTIME; - tags = g_key_file_get_string_list (metadata, group, "tags", NULL, NULL); - runtime = g_key_file_get_string (metadata, group, "runtime", NULL); - sdk = g_key_file_get_string (metadata, group, "sdk", NULL); + tags = g_key_file_get_string_list (metadata, group, FLATPAK_METADATA_KEY_TAGS, + NULL, NULL); + runtime = g_key_file_get_string (metadata, group, + FLATPAK_METADATA_KEY_RUNTIME, NULL); + sdk = g_key_file_get_string (metadata, group, FLATPAK_METADATA_KEY_SDK, NULL); source_components = source->first_child; dest_components = dest->first_child; @@ -3831,7 +3834,10 @@ flatpak_extension_new (const char *id, g_autofree char *metadata_path = g_build_filename (ext->files_path, "../metadata", NULL); if (g_key_file_load_from_file (keyfile, metadata_path, G_KEY_FILE_NONE, NULL)) - ext->priority = g_key_file_get_integer (keyfile, "ExtensionOf", "priority", NULL); + ext->priority = g_key_file_get_integer (keyfile, + FLATPAK_METADATA_GROUP_EXTENSION_OF, + FLATPAK_METADATA_KEY_PRIORITY, + NULL); } return ext; @@ -3879,11 +3885,21 @@ add_extension (GKeyFile *metakey, GList *res) { FlatpakExtension *ext; - g_autofree char *directory = g_key_file_get_string (metakey, group, "directory", NULL); - g_autofree char *add_ld_path = g_key_file_get_string (metakey, group, "add-ld-path", NULL); - g_auto(GStrv) merge_dirs = g_key_file_get_string_list (metakey, group, "merge-dirs", NULL, NULL); - g_autofree char *enable_if = g_key_file_get_string (metakey, group, "enable-if", NULL); - g_autofree char *subdir_suffix = g_key_file_get_string (metakey, group, "subdirectory-suffix", NULL); + g_autofree char *directory = g_key_file_get_string (metakey, group, + FLATPAK_METADATA_KEY_DIRECTORY, + NULL); + g_autofree char *add_ld_path = g_key_file_get_string (metakey, group, + FLATPAK_METADATA_KEY_ADD_LD_PATH, + NULL); + g_auto(GStrv) merge_dirs = g_key_file_get_string_list (metakey, group, + FLATPAK_METADATA_KEY_MERGE_DIRS, + NULL, NULL); + g_autofree char *enable_if = g_key_file_get_string (metakey, group, + FLATPAK_METADATA_KEY_ENABLE_IF, + NULL); + g_autofree char *subdir_suffix = g_key_file_get_string (metakey, group, + FLATPAK_METADATA_KEY_SUBDIRECTORY_SUFFIX, + NULL); g_autofree char *ref = NULL; gboolean is_unmaintained = FALSE; g_autoptr(GFile) files = NULL; @@ -3910,7 +3926,7 @@ add_extension (GKeyFile *metakey, } } else if (g_key_file_get_boolean (metakey, group, - "subdirectories", NULL)) + FLATPAK_METADATA_KEY_SUBDIRECTORIES, NULL)) { g_autofree char *prefix = g_strconcat (extension, ".", NULL); g_auto(GStrv) refs = NULL; @@ -3973,11 +3989,15 @@ flatpak_list_extensions (GKeyFile *metakey, { char *extension; - if (g_str_has_prefix (groups[i], "Extension ") && - *(extension = (groups[i] + strlen ("Extension "))) != 0) + if (g_str_has_prefix (groups[i], FLATPAK_METADATA_GROUP_PREFIX_EXTENSION) && + *(extension = (groups[i] + strlen (FLATPAK_METADATA_GROUP_PREFIX_EXTENSION))) != 0) { - g_autofree char *version = g_key_file_get_string (metakey, groups[i], "version", NULL); - g_auto(GStrv) versions = g_key_file_get_string_list (metakey, groups[i], "versions", NULL, NULL); + g_autofree char *version = g_key_file_get_string (metakey, groups[i], + FLATPAK_METADATA_KEY_VERSION, + NULL); + g_auto(GStrv) versions = g_key_file_get_string_list (metakey, groups[i], + FLATPAK_METADATA_KEY_VERSIONS, + NULL, NULL); const char *default_branches[] = { default_branch, NULL}; const char **branches; diff --git a/document-portal/xdp-main.c b/document-portal/xdp-main.c index c4267746..bafab085 100644 --- a/document-portal/xdp-main.c +++ b/document-portal/xdp-main.c @@ -422,8 +422,12 @@ validate_fd (int fd, /* For apps we translate /app and /usr to the installed locations. Also, we need to rewrite to drop the /newroot prefix added by bubblewrap for other files to work. */ - app_path = g_key_file_get_string (app_info, "Instance", "app-path", NULL); - runtime_path = g_key_file_get_string (app_info, "Instance", "runtime-path", NULL); + app_path = g_key_file_get_string (app_info, FLATPAK_METADATA_GROUP_INSTANCE, + FLATPAK_METADATA_KEY_APP_PATH, NULL); + runtime_path = g_key_file_get_string (app_info, + FLATPAK_METADATA_GROUP_INSTANCE, + FLATPAK_METADATA_KEY_RUNTIME_PATH, + NULL); if (app_path != NULL || runtime_path != NULL) { if (app_path != NULL && @@ -824,7 +828,9 @@ got_app_id_cb (GObject *source_object, app_info = flatpak_invocation_lookup_app_info_finish (invocation, res, &error); if (app_info != NULL) - app_id = g_key_file_get_string (app_info, "Application", "name", &error); + app_id = g_key_file_get_string (app_info, + FLATPAK_METADATA_GROUP_APPLICATION, + FLATPAK_METADATA_KEY_NAME, &error); if (app_id == NULL) g_dbus_method_invocation_return_gerror (invocation, error);