forked from Mirrors/flatpak-builder
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 <smcv@collabora.com>tingping/wmclass
parent
a80a1b9bb2
commit
489bfddfb3
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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++)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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[];
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue