forked from Mirrors/flatpak-builder
Support passing --token-type to build-export
Provide a --token-type command line option and a token-type manifest property that allows passing the token type to build-export. The manifest property takes precendence over the CLI option. In either case, the value will be passed to build-export if it's >= 0. This requires flatpak >= 1.6 to use the --token-type option in build-export.master
parent
3fda50c199
commit
aec06b3945
|
@ -428,6 +428,19 @@
|
|||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--token-type=VAL</option></term>
|
||||
|
||||
<listitem><para>
|
||||
Set type of token needed to install this commit.
|
||||
Setting this to a value greater than 0 implies that
|
||||
authentication will be needed to install the
|
||||
flatpak. A <option>token-type</option> property set
|
||||
in the manifest takes precedence over this option.
|
||||
Used when exporting the build results.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--gpg-sign=KEYID</option></term>
|
||||
|
||||
|
|
|
@ -101,6 +101,13 @@
|
|||
locations for the same extension point defined with different tags
|
||||
then an error will occur.</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>token-type</option> (integer)</term>
|
||||
<listitem><para>The type of token needed to install
|
||||
this commit. Setting this to a value greater than 0
|
||||
implies that authentication will be needed to
|
||||
install the flatpak.</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>runtime</option> (string)</term>
|
||||
<listitem><para>The name of the runtime that the application uses.</para></listitem>
|
||||
|
|
|
@ -71,6 +71,7 @@ static char *opt_repo;
|
|||
static char *opt_subject;
|
||||
static char *opt_body;
|
||||
static char *opt_collection_id = NULL;
|
||||
static int opt_token_type = -1;
|
||||
static char *opt_gpg_homedir;
|
||||
static char **opt_key_ids;
|
||||
static char **opt_sources_dirs;
|
||||
|
@ -118,6 +119,7 @@ static GOptionEntry entries[] = {
|
|||
{ "subject", 's', 0, G_OPTION_ARG_STRING, &opt_subject, "One line subject (passed to build-export)", "SUBJECT" },
|
||||
{ "body", 'b', 0, G_OPTION_ARG_STRING, &opt_body, "Full description (passed to build-export)", "BODY" },
|
||||
{ "collection-id", 0, 0, G_OPTION_ARG_STRING, &opt_collection_id, "Collection ID (passed to build-export)", "COLLECTION-ID" },
|
||||
{ "token-type", 0, 0, G_OPTION_ARG_INT, &opt_token_type, "Set type of token needed to install this commit (passed to build-export)", "VAL" },
|
||||
{ "gpg-sign", 0, 0, G_OPTION_ARG_STRING_ARRAY, &opt_key_ids, "GPG Key ID to sign the commit with", "KEY-ID"},
|
||||
{ "gpg-homedir", 0, 0, G_OPTION_ARG_STRING, &opt_gpg_homedir, "GPG Homedir to use when looking for keyrings", "HOMEDIR"},
|
||||
{ "force-clean", 0, 0, G_OPTION_ARG_NONE, &opt_force_clean, "Erase previous contents of DIRECTORY", NULL },
|
||||
|
@ -199,6 +201,7 @@ do_export (BuilderContext *build_context,
|
|||
char **exclude_dirs,
|
||||
const gchar *branch,
|
||||
const gchar *collection_id,
|
||||
gint32 token_type,
|
||||
...)
|
||||
{
|
||||
va_list ap;
|
||||
|
@ -231,8 +234,11 @@ do_export (BuilderContext *build_context,
|
|||
if (collection_id)
|
||||
g_ptr_array_add (args, g_strdup_printf ("--collection-id=%s", collection_id));
|
||||
|
||||
if (token_type >= 0)
|
||||
g_ptr_array_add (args, g_strdup_printf ("--token-type=%d", token_type));
|
||||
|
||||
/* Additional flags. */
|
||||
va_start (ap, collection_id);
|
||||
va_start (ap, token_type);
|
||||
while ((arg = va_arg (ap, const gchar *)))
|
||||
if (arg != skip_arg)
|
||||
g_ptr_array_add (args, g_strdup ((gchar *) arg));
|
||||
|
@ -501,6 +507,16 @@ main (int argc,
|
|||
return 1;
|
||||
}
|
||||
|
||||
if (opt_token_type < -1
|
||||
#if G_MAXINT > 0x7fffffff
|
||||
|| opt_token_type > G_MAXINT32
|
||||
#endif
|
||||
)
|
||||
{
|
||||
g_printerr ("--token-type value must be a 32 bit integer >= 0\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (app_dir_path)
|
||||
app_dir = g_file_new_for_path (app_dir_path);
|
||||
cwd = g_get_current_dir ();
|
||||
|
@ -669,6 +685,9 @@ main (int argc,
|
|||
if (opt_collection_id)
|
||||
builder_manifest_set_default_collection_id (manifest, opt_collection_id);
|
||||
|
||||
if (opt_token_type >= 0)
|
||||
builder_manifest_set_default_token_type (manifest, (gint32)opt_token_type);
|
||||
|
||||
if (is_run && argc == 3)
|
||||
return usage (context, "Program to run must be specified");
|
||||
|
||||
|
@ -993,6 +1012,7 @@ main (int argc,
|
|||
flatpak_file_get_path_cached (export_repo),
|
||||
app_dir_path, exclude_dirs, builder_manifest_get_branch (manifest, build_context),
|
||||
builder_manifest_get_collection_id (manifest),
|
||||
builder_manifest_get_token_type (manifest),
|
||||
"--exclude=/lib/debug/*",
|
||||
"--include=/lib/debug/app",
|
||||
builder_context_get_separate_locales (build_context) ? "--exclude=/share/runtime/locale/*/*" : skip_arg,
|
||||
|
@ -1027,6 +1047,7 @@ main (int argc,
|
|||
flatpak_file_get_path_cached (export_repo),
|
||||
app_dir_path, NULL, builder_manifest_get_branch (manifest, build_context),
|
||||
builder_manifest_get_collection_id (manifest),
|
||||
builder_manifest_get_token_type (manifest),
|
||||
metadata_arg,
|
||||
files_arg,
|
||||
NULL))
|
||||
|
@ -1047,6 +1068,7 @@ main (int argc,
|
|||
flatpak_file_get_path_cached (export_repo),
|
||||
app_dir_path, NULL, builder_manifest_get_branch (manifest, build_context),
|
||||
builder_manifest_get_collection_id (manifest),
|
||||
builder_manifest_get_token_type (manifest),
|
||||
"--metadata=metadata.debuginfo",
|
||||
builder_context_get_build_runtime (build_context) ? "--files=usr/lib/debug" : "--files=files/lib/debug",
|
||||
NULL))
|
||||
|
@ -1078,6 +1100,7 @@ main (int argc,
|
|||
flatpak_file_get_path_cached (export_repo),
|
||||
app_dir_path, NULL, builder_manifest_get_branch (manifest, build_context),
|
||||
builder_manifest_get_collection_id (manifest),
|
||||
builder_manifest_get_token_type (manifest),
|
||||
metadata_arg, files_arg,
|
||||
NULL))
|
||||
{
|
||||
|
@ -1097,6 +1120,7 @@ main (int argc,
|
|||
flatpak_file_get_path_cached (export_repo),
|
||||
app_dir_path, NULL, builder_manifest_get_branch (manifest, build_context),
|
||||
builder_manifest_get_collection_id (manifest),
|
||||
builder_manifest_get_token_type (manifest),
|
||||
"--metadata=metadata.sources",
|
||||
"--files=sources",
|
||||
NULL))
|
||||
|
@ -1117,6 +1141,7 @@ main (int argc,
|
|||
flatpak_file_get_path_cached (export_repo),
|
||||
app_dir_path, NULL, builder_manifest_get_branch (manifest, build_context),
|
||||
builder_manifest_get_collection_id (manifest),
|
||||
builder_manifest_get_token_type (manifest),
|
||||
"--metadata=metadata.platform",
|
||||
"--files=platform",
|
||||
builder_context_get_separate_locales (build_context) ? "--exclude=/share/runtime/locale/*/*" : skip_arg,
|
||||
|
@ -1151,6 +1176,7 @@ main (int argc,
|
|||
flatpak_file_get_path_cached (export_repo),
|
||||
app_dir_path, NULL, builder_manifest_get_branch (manifest, build_context),
|
||||
builder_manifest_get_collection_id (manifest),
|
||||
builder_manifest_get_token_type (manifest),
|
||||
metadata_arg,
|
||||
files_arg,
|
||||
NULL))
|
||||
|
|
|
@ -63,6 +63,7 @@ struct BuilderManifest
|
|||
char *branch;
|
||||
char *default_branch;
|
||||
char *collection_id;
|
||||
gint32 token_type;
|
||||
char *extension_tag;
|
||||
char *type;
|
||||
char *runtime;
|
||||
|
@ -167,6 +168,7 @@ enum {
|
|||
PROP_ADD_EXTENSIONS,
|
||||
PROP_ADD_BUILD_EXTENSIONS,
|
||||
PROP_EXTENSION_TAG,
|
||||
PROP_TOKEN_TYPE,
|
||||
LAST_PROP
|
||||
};
|
||||
|
||||
|
@ -470,6 +472,10 @@ builder_manifest_get_property (GObject *object,
|
|||
g_value_set_string (value, self->extension_tag);
|
||||
break;
|
||||
|
||||
case PROP_TOKEN_TYPE:
|
||||
g_value_set_int (value, (int)self->token_type);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
}
|
||||
|
@ -729,6 +735,10 @@ builder_manifest_set_property (GObject *object,
|
|||
self->extension_tag = g_value_dup_string (value);
|
||||
break;
|
||||
|
||||
case PROP_TOKEN_TYPE:
|
||||
self->token_type = (gint32)g_value_get_int (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
}
|
||||
|
@ -1070,11 +1080,22 @@ builder_manifest_class_init (BuilderManifestClass *klass)
|
|||
"",
|
||||
NULL,
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_TOKEN_TYPE,
|
||||
g_param_spec_int ("token-type",
|
||||
"",
|
||||
"",
|
||||
-1,
|
||||
G_MAXINT32,
|
||||
-1,
|
||||
G_PARAM_READWRITE));
|
||||
}
|
||||
|
||||
static void
|
||||
builder_manifest_init (BuilderManifest *self)
|
||||
{
|
||||
self->token_type = -1;
|
||||
self->appstream_compose = TRUE;
|
||||
self->separate_locales = TRUE;
|
||||
}
|
||||
|
@ -1426,6 +1447,20 @@ builder_manifest_set_default_collection_id (BuilderManifest *self,
|
|||
self->collection_id = g_strdup (default_collection_id);
|
||||
}
|
||||
|
||||
gint32
|
||||
builder_manifest_get_token_type (BuilderManifest *self)
|
||||
{
|
||||
return self->token_type;
|
||||
}
|
||||
|
||||
void
|
||||
builder_manifest_set_default_token_type (BuilderManifest *self,
|
||||
gint32 default_token_type)
|
||||
{
|
||||
if (self->token_type == -1)
|
||||
self->token_type = default_token_type;
|
||||
}
|
||||
|
||||
void
|
||||
builder_manifest_add_tags (BuilderManifest *self,
|
||||
const char **add_tags)
|
||||
|
|
|
@ -62,9 +62,12 @@ GList * builder_manifest_get_add_build_extensions (BuilderManifest *self
|
|||
const char * builder_manifest_get_branch (BuilderManifest *self,
|
||||
BuilderContext *context);
|
||||
const char * builder_manifest_get_collection_id (BuilderManifest *self);
|
||||
gint32 builder_manifest_get_token_type (BuilderManifest *self);
|
||||
const char * builder_manifest_get_extension_tag (BuilderManifest *self);
|
||||
void builder_manifest_set_default_collection_id (BuilderManifest *self,
|
||||
const char *default_collection_id);
|
||||
void builder_manifest_set_default_token_type (BuilderManifest *self,
|
||||
gint32 default_token_type);
|
||||
|
||||
void builder_manifest_add_tags (BuilderManifest *self,
|
||||
const char **add_tags);
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
"sdk": "org.test.Sdk",
|
||||
"command": "hello2.sh",
|
||||
"tags": ["test"],
|
||||
"token-type": 0,
|
||||
"finish-args": [
|
||||
"--share=network"
|
||||
],
|
||||
|
|
|
@ -3,6 +3,7 @@ runtime: org.test.Platform
|
|||
sdk: org.test.Sdk
|
||||
command: hello2.sh
|
||||
tags: [test]
|
||||
token-type: 0
|
||||
finish-args:
|
||||
- --share=network
|
||||
build-options:
|
||||
|
|
Loading…
Reference in New Issue