From 52e75ba2b63f9ee7f1b74ec2f249731798f7a5f6 Mon Sep 17 00:00:00 2001 From: Mario Limonciello Date: Fri, 22 Nov 2019 13:21:19 -0600 Subject: [PATCH] fwupdtool: don't show a warning when calling `get-plugins` The plugins are not opened for this function so of course they won't set their build hashes. Fixes errors like this: `uefi should call fu_plugin_set_build_hash()` --- src/fu-engine.c | 24 ++++++++++++++---------- src/fu-plugin-private.h | 1 + src/fu-plugin.c | 17 +++++++++++++++++ 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/fu-engine.c b/src/fu-engine.c index a087354a1..7e7c336c2 100644 --- a/src/fu-engine.c +++ b/src/fu-engine.c @@ -4277,16 +4277,20 @@ fu_engine_plugin_set_coldplug_delay_cb (FuPlugin *plugin, guint duration, FuEngi void fu_engine_add_plugin (FuEngine *self, FuPlugin *plugin) { - /* plugin does not match built version */ - if (fu_plugin_get_build_hash (plugin) == NULL) { - const gchar *name = fu_plugin_get_name (plugin); - g_warning ("%s should call fu_plugin_set_build_hash()", name); - self->tainted = TRUE; - } else if (g_strcmp0 (fu_plugin_get_build_hash (plugin), FU_BUILD_HASH) != 0) { - const gchar *name = fu_plugin_get_name (plugin); - g_warning ("%s has incorrect built version %s", - name, fu_plugin_get_build_hash (plugin)); - self->tainted = TRUE; + if (fu_plugin_is_open (plugin)) { + /* plugin does not match built version */ + if (fu_plugin_get_build_hash (plugin) == NULL) { + const gchar *name = fu_plugin_get_name (plugin); + g_warning ("%s should call fu_plugin_set_build_hash()", + name); + self->tainted = TRUE; + } else if (g_strcmp0 (fu_plugin_get_build_hash (plugin), + FU_BUILD_HASH) != 0) { + const gchar *name = fu_plugin_get_name (plugin); + g_warning ("%s has incorrect built version %s", + name, fu_plugin_get_build_hash (plugin)); + self->tainted = TRUE; + } } fu_plugin_list_add (self->plugin_list, plugin); diff --git a/src/fu-plugin-private.h b/src/fu-plugin-private.h index 5aa6fa251..6d3ec43a1 100644 --- a/src/fu-plugin-private.h +++ b/src/fu-plugin-private.h @@ -13,6 +13,7 @@ #define FU_OFFLINE_TRIGGER_FILENAME FU_OFFLINE_DESTDIR "/system-update" FuPlugin *fu_plugin_new (void); +gboolean fu_plugin_is_open (FuPlugin *self); void fu_plugin_set_usb_context (FuPlugin *self, GUsbContext *usb_ctx); void fu_plugin_set_hwids (FuPlugin *self, diff --git a/src/fu-plugin.c b/src/fu-plugin.c index 22c11f0fb..210dc58b9 100644 --- a/src/fu-plugin.c +++ b/src/fu-plugin.c @@ -106,6 +106,23 @@ typedef gboolean (*FuPluginUdevDeviceAddedFunc) (FuPlugin *self, FuUdevDevice *device, GError **error); +/** + * fu_plugin_is_open: + * @self: A #FuPlugin + * + * Determines if the plugin is opened + * + * Returns: TRUE for opened, FALSE for not + * + * Since: 1.3.5 + **/ +gboolean +fu_plugin_is_open (FuPlugin *self) +{ + FuPluginPrivate *priv = GET_PRIVATE (self); + return priv->module != NULL; +} + /** * fu_plugin_get_name: * @self: A #FuPlugin