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);