Add a human-readable title for each remote

This allows us to show something useful in a GUI.
This commit is contained in:
Richard Hughes 2017-09-09 20:47:21 +01:00
parent 3eb8f42421
commit 48ad97fd61
9 changed files with 45 additions and 0 deletions

View File

@ -4,6 +4,7 @@ Vendor Firmware
These are the steps to add vendor that is installed as part of an OSTree image:
* Change `/etc/fwupd/remotes.d/vendor.conf` to have `Enabled=true`
* Change `/etc/fwupd/remotes.d/vendor.conf` to have the correct `Title`
* Deploy the firmware to `/usr/share/fwupd/remotes.d/vendor/firmware`
* Deploy the metadata to `/usr/share/fwupd/remotes.d/vendor/vendor.xml`

View File

@ -2,5 +2,6 @@
# this remote provides metadata shipped with the fwupd package
Enabled=true
Title=Core
Keyring=none
MetadataURI=file://@datadir@/fwupd/remotes.d/fwupd/metadata.xml

View File

@ -2,6 +2,7 @@
# this remote provides metadata and firmware marked as 'testing' from the LVFS
Enabled=false
Title=Linux Vendor Firmware Service (testing)
Keyring=gpg
MetadataURI=https://s3.amazonaws.com/lvfsbucket/downloads/firmware-testing.xml.gz
Username=

View File

@ -2,6 +2,7 @@
# this remote provides metadata and firmware marked as 'stable' from the LVFS
Enabled=true
Title=Linux Vendor Firmware Service
Keyring=gpg
MetadataURI=https://s3.amazonaws.com/lvfsbucket/downloads/firmware.xml.gz
OrderBefore=fwupd

View File

@ -3,5 +3,6 @@
# this remote provides metadata shipped by the OS vendor and can be found in
# /usr/share/fwupd/remotes.d/vendor and /usr/share/fwupd/remotes.d/vendor/firmware
Enabled=false
Title=Vendor
Keyring=none
MetadataURI=file://@datadir@/fwupd/remotes.d/vendor/vendor.xml.gz

View File

@ -38,6 +38,7 @@ struct _FwupdRemote
gchar *metadata_uri_sig;
gchar *username;
gchar *password;
gchar *title;
gchar *filename;
gchar *filename_asc;
gchar *filename_cache;
@ -73,6 +74,13 @@ fwupd_remote_set_username (FwupdRemote *self, const gchar *username)
soup_uri_set_user (self->uri_asc, username);
}
static void
fwupd_remote_set_title (FwupdRemote *self, const gchar *title)
{
g_free (self->title);
self->title = g_strdup (title);
}
static void
fwupd_remote_set_password (FwupdRemote *self, const gchar *password)
{
@ -298,6 +306,7 @@ fwupd_remote_load_from_filename (FwupdRemote *self,
/* extract data */
self->enabled = g_key_file_get_boolean (kf, group, "Enabled", NULL);
self->title = g_key_file_get_string (kf, group, "Title", NULL);
/* DOWNLOAD-type remotes */
if (self->kind == FWUPD_REMOTE_KIND_DOWNLOAD) {
@ -546,6 +555,23 @@ fwupd_remote_get_filename_asc (FwupdRemote *self)
return self->filename_asc;
}
/**
* fwupd_remote_get_title:
* @self: A #FwupdRemote
*
* Gets the remote title, e.g. "Linux Vendor Firmware Service".
*
* Returns: a string, or %NULL if unset
*
* Since: 0.9.8
**/
const gchar *
fwupd_remote_get_title (FwupdRemote *self)
{
g_return_val_if_fail (FWUPD_IS_REMOTE (self), NULL);
return self->title;
}
/**
* fwupd_remote_build_uri:
* @self: A #FwupdRemote
@ -766,6 +792,10 @@ fwupd_remote_to_variant_builder (FwupdRemote *self, GVariantBuilder *builder)
g_variant_builder_add (builder, "{sv}", "Password",
g_variant_new_string (self->password));
}
if (self->title != NULL) {
g_variant_builder_add (builder, "{sv}", "Title",
g_variant_new_string (self->title));
}
if (self->metadata_uri != NULL) {
g_variant_builder_add (builder, "{sv}", "Url",
g_variant_new_string (self->metadata_uri));
@ -832,6 +862,8 @@ fwupd_remote_set_from_variant_iter (FwupdRemote *self, GVariantIter *iter)
fwupd_remote_set_username (self, g_variant_get_string (value, NULL));
} else if (g_strcmp0 (key, "Password") == 0) {
fwupd_remote_set_password (self, g_variant_get_string (value, NULL));
} else if (g_strcmp0 (key, "Title") == 0) {
fwupd_remote_set_title (self, g_variant_get_string (value, NULL));
} else if (g_strcmp0 (key, "Enabled") == 0) {
self->enabled = g_variant_get_boolean (value);
} else if (g_strcmp0 (key, "Priority") == 0) {
@ -961,6 +993,7 @@ fwupd_remote_finalize (GObject *obj)
g_free (self->firmware_base_uri);
g_free (self->username);
g_free (self->password);
g_free (self->title);
g_free (self->filename);
g_free (self->filename_asc);
g_free (self->filename_cache);

View File

@ -44,6 +44,7 @@ const gchar *fwupd_remote_kind_to_string (FwupdRemoteKind kind);
FwupdRemote *fwupd_remote_new (void);
const gchar *fwupd_remote_get_id (FwupdRemote *self);
const gchar *fwupd_remote_get_title (FwupdRemote *self);
const gchar *fwupd_remote_get_filename (FwupdRemote *self);
const gchar *fwupd_remote_get_filename_asc (FwupdRemote *self);
const gchar *fwupd_remote_get_username (FwupdRemote *self);

View File

@ -113,6 +113,7 @@ fwupd_remote_download_func (void)
g_assert (fwupd_remote_get_enabled (remote));
g_assert (fwupd_remote_get_metadata_uri (remote) != NULL);
g_assert (fwupd_remote_get_metadata_uri_sig (remote) != NULL);
g_assert_cmpstr (fwupd_remote_get_title (remote), ==, "Linux Vendor Firmware Service");
g_assert_cmpstr (fwupd_remote_get_filename (remote), ==, "lvfs-firmware.xml.gz");
g_assert_cmpstr (fwupd_remote_get_filename_asc (remote), ==, "lvfs-firmware.xml.gz.asc");
g_assert_cmpstr (fwupd_remote_get_filename_cache (remote), ==,
@ -167,6 +168,7 @@ fwupd_remote_local_func (void)
g_assert (fwupd_remote_get_enabled (remote));
g_assert (fwupd_remote_get_metadata_uri (remote) == NULL);
g_assert (fwupd_remote_get_metadata_uri_sig (remote) == NULL);
g_assert_cmpstr (fwupd_remote_get_title (remote), ==, "Core");
g_assert_cmpstr (fwupd_remote_get_filename (remote), ==, NULL);
g_assert_cmpstr (fwupd_remote_get_filename_asc (remote), ==, NULL);
g_assert_cmpstr (fwupd_remote_get_filename_cache (remote), ==, "@datadir@/fwupd/remotes.d/fwupd/metadata.xml");

View File

@ -1104,6 +1104,10 @@ fu_util_get_remotes (FuUtilPrivate *priv, gchar **values, GError **error)
fu_util_print_data (_("Remote ID"),
fwupd_remote_get_id (remote));
/* TRANSLATORS: remote title, e.g. "Linux Vendor Firmware Service" */
fu_util_print_data (_("Title"),
fwupd_remote_get_title (remote));
/* TRANSLATORS: remote type, e.g. remote or local */
fu_util_print_data (_("Type"),
fwupd_remote_kind_to_string (kind));