Flatpak[ref|repo]: Add Version field

If this is set it has to be 1, or we fail.
This lets us later introduce incompatible changes.
tingping/wmclass
Alexander Larsson 2016-12-13 15:54:14 +01:00
parent f3b188cef3
commit e1bf3eff52
3 changed files with 17 additions and 0 deletions

View File

@ -220,6 +220,7 @@ load_options (const char *filename,
char *str;
gboolean nodeps;
g_autoptr(GBytes) bytes = NULL;
g_autofree char *version = NULL;
if (g_str_has_prefix (filename, "http:") ||
g_str_has_prefix (filename, "https:"))
@ -258,6 +259,14 @@ load_options (const char *filename,
exit (1);
}
version = g_key_file_get_string (keyfile, FLATPAK_REPO_GROUP,
FLATPAK_REPO_VERSION_KEY, NULL);
if (version != NULL && strcmp (version, "1") != 0)
{
g_printerr ("Invalid version %s, only 1 supported", version);
exit (1);
}
str = g_key_file_get_string (keyfile, FLATPAK_REPO_GROUP,
FLATPAK_REPO_URL_KEY, NULL);
if (str != NULL)

View File

@ -6015,6 +6015,7 @@ parse_ref_file (GBytes *data,
g_autofree char *title = NULL;
g_autofree char *name = NULL;
g_autofree char *branch = NULL;
g_autofree char *version = NULL;
g_autoptr(GBytes) gpg_data = NULL;
gboolean is_runtime = FALSE;
char *str;
@ -6033,6 +6034,11 @@ parse_ref_file (GBytes *data,
if (!g_key_file_has_group (keyfile, FLATPAK_REF_GROUP))
return flatpak_fail (error, "Invalid file format, no %s group", FLATPAK_REF_GROUP);
version = g_key_file_get_string (keyfile, FLATPAK_REF_GROUP,
FLATPAK_REF_VERSION_KEY, NULL);
if (version != NULL && strcmp (version, "1") != 0)
return flatpak_fail (error, "Invalid version %s, only 1 supported", version);
url = g_key_file_get_string (keyfile, FLATPAK_REF_GROUP,
FLATPAK_REF_URL_KEY, NULL);
if (url == NULL)

View File

@ -38,6 +38,7 @@ GType flatpak_dir_get_type (void);
GType flatpak_deploy_get_type (void);
#define FLATPAK_REF_GROUP "Flatpak Ref"
#define FLATPAK_REF_VERSION_KEY "Version"
#define FLATPAK_REF_URL_KEY "Url"
#define FLATPAK_REF_RUNTIME_REPO_KEY "RuntimeRepo"
#define FLATPAK_REF_TITLE_KEY "Title"
@ -47,6 +48,7 @@ GType flatpak_deploy_get_type (void);
#define FLATPAK_REF_BRANCH_KEY "Branch"
#define FLATPAK_REPO_GROUP "Flatpak Repo"
#define FLATPAK_REPO_VERSION_KEY "Version"
#define FLATPAK_REPO_URL_KEY "Url"
#define FLATPAK_REPO_TITLE_KEY "Title"
#define FLATPAK_REPO_DEFAULT_BRANCH_KEY "DefaultBranch"