diff --git a/plugins/packagekit/gs-plugin-packagekit-refine-repos.c b/plugins/packagekit/gs-plugin-packagekit-refine-repos.c index ce50d11154665656f70d9794b6496c4730bee783..11049bf8991623eda02a72c7ed365821eec649ea 100644 --- a/plugins/packagekit/gs-plugin-packagekit-refine-repos.c +++ b/plugins/packagekit/gs-plugin-packagekit-refine-repos.c @@ -126,7 +126,7 @@ gs_plugin_refine (GsPlugin *plugin, continue; if (gs_app_get_kind (app) != AS_COMPONENT_KIND_REPOSITORY) continue; - if (!gs_app_has_management_plugin (app, plugin)) + if (!gs_plugin_packagekit_is_packagekit_app (app, plugin)) continue; fn = gs_app_get_metadata_item (app, "repos::repo-filename"); if (fn == NULL) diff --git a/plugins/packagekit/gs-plugin-packagekit-refresh.c b/plugins/packagekit/gs-plugin-packagekit-refresh.c index e0e965d1aad75b71d1c86971e6cb57e3e3f28061..e0b0ae6b8bd4c993edd178d4e5e6a51c58c8e6b2 100644 --- a/plugins/packagekit/gs-plugin-packagekit-refresh.c +++ b/plugins/packagekit/gs-plugin-packagekit-refresh.c @@ -158,7 +158,7 @@ gs_plugin_download (GsPlugin *plugin, /* add this app */ if (!gs_app_has_quirk (app, GS_APP_QUIRK_IS_PROXY)) { - if (gs_app_has_management_plugin (app, plugin)) + if (gs_plugin_packagekit_is_packagekit_app (app, plugin)) gs_app_list_add (list_tmp, app); continue; } @@ -166,7 +166,7 @@ gs_plugin_download (GsPlugin *plugin, /* add each related app */ for (guint j = 0; j < gs_app_list_length (related); j++) { GsApp *app_tmp = gs_app_list_index (related, j); - if (gs_app_has_management_plugin (app_tmp, plugin)) + if (gs_plugin_packagekit_is_packagekit_app (app_tmp, plugin)) gs_app_list_add (list_tmp, app_tmp); } } diff --git a/plugins/packagekit/gs-plugin-packagekit.c b/plugins/packagekit/gs-plugin-packagekit.c index 9f933dd462636c7d58a91260c0ba58f4087aa93a..cf9e9b659540c9220252c78d0439384744cf633d 100644 --- a/plugins/packagekit/gs-plugin-packagekit.c +++ b/plugins/packagekit/gs-plugin-packagekit.c @@ -412,7 +412,7 @@ gs_plugin_app_install (GsPlugin *plugin, g_autoptr(PkResults) results = NULL; /* only process this app if was created by this plugin */ - if (!gs_app_has_management_plugin (app, plugin)) + if (!gs_plugin_packagekit_is_packagekit_app (app, plugin)) return TRUE; /* enable repo, handled by dedicated function */ @@ -622,7 +622,7 @@ gs_plugin_app_remove (GsPlugin *plugin, g_auto(GStrv) package_ids = NULL; /* only process this app if was created by this plugin */ - if (!gs_app_has_management_plugin (app, plugin)) + if (!gs_plugin_packagekit_is_packagekit_app (app, plugin)) return TRUE; /* disable repo, handled by dedicated function */ @@ -840,7 +840,7 @@ gs_plugin_launch (GsPlugin *plugin, GError **error) { /* only process this app if was created by this plugin */ - if (!gs_app_has_management_plugin (app, plugin)) + if (!gs_plugin_packagekit_is_packagekit_app (app, plugin)) return TRUE; return gs_plugin_app_launch (plugin, app, error); @@ -1314,7 +1314,7 @@ gs_plugin_packagekit_refine_details (GsPluginPackagekit *self, continue; /* only process this app if was created by this plugin */ - if (!gs_app_has_management_plugin (app, GS_PLUGIN (self))) + if (!gs_plugin_packagekit_is_packagekit_app (app, GS_PLUGIN (self))) continue; if (gs_app_get_source_id_default (app) == NULL) continue; @@ -1465,7 +1465,7 @@ gs_plugin_packagekit_refine_name_to_id (GsPluginPackagekit *self, if (gs_app_has_quirk (app, GS_APP_QUIRK_IS_WILDCARD)) continue; if (!gs_app_has_management_plugin (app, NULL) && - !gs_app_has_management_plugin (app, GS_PLUGIN (self))) + !gs_plugin_packagekit_is_packagekit_app (app, GS_PLUGIN (self))) continue; sources = gs_app_get_sources (app); if (sources->len == 0) @@ -1510,7 +1510,7 @@ gs_plugin_packagekit_refine_filename_to_id (GsPluginPackagekit *self, if (gs_app_get_source_id_default (app) != NULL) continue; if (!gs_app_has_management_plugin (app, NULL) && - !gs_app_has_management_plugin (app, GS_PLUGIN (self))) + !gs_plugin_packagekit_is_packagekit_app (app, GS_PLUGIN (self))) continue; tmp = gs_app_get_id (app); if (tmp == NULL) @@ -1563,7 +1563,7 @@ gs_plugin_packagekit_refine_update_details (GsPluginPackagekit *self, if (gs_app_get_source_id_default (app) == NULL) continue; if (!gs_app_has_management_plugin (app, NULL) && - !gs_app_has_management_plugin (app, GS_PLUGIN (self))) + !gs_plugin_packagekit_is_packagekit_app (app, GS_PLUGIN (self))) continue; if (gs_plugin_refine_requires_update_details (app, flags)) gs_app_list_add (updatedetails_all, app); @@ -1627,7 +1627,7 @@ gs_plugin_refine (GsPlugin *plugin, GsApp *app = gs_app_list_index (list, i); /* only process this app if was created by this plugin */ - if (!gs_app_has_management_plugin (app, plugin)) + if (!gs_plugin_packagekit_is_packagekit_app (app, plugin)) continue; /* the scope is always system-wide */ @@ -1648,7 +1648,7 @@ gs_plugin_refine (GsPlugin *plugin, packages = gs_app_list_new (); for (i = 0; i < gs_app_list_length (list); i++) { app = gs_app_list_index (list, i); - if (!gs_app_has_management_plugin (app, plugin)) + if (!gs_plugin_packagekit_is_packagekit_app (app, plugin)) continue; sources = gs_app_get_sources (app); if (sources->len == 0) @@ -2727,7 +2727,7 @@ gs_plugin_app_upgrade_download (GsPlugin *plugin, g_autoptr(PkResults) results = NULL; /* only process this app if was created by this plugin */ - if (!gs_app_has_management_plugin (app, plugin)) + if (!gs_plugin_packagekit_is_packagekit_app (app, plugin)) return TRUE; /* check is distro-upgrade */ @@ -2800,7 +2800,7 @@ gs_plugin_enable_repo (GsPlugin *plugin, g_autoptr(PkError) error_code = NULL; /* only process this app if was created by this plugin */ - if (!gs_app_has_management_plugin (repo, plugin)) + if (!gs_plugin_packagekit_is_packagekit_app (repo, plugin)) return TRUE; /* is repo */ @@ -2855,7 +2855,7 @@ gs_plugin_disable_repo (GsPlugin *plugin, g_autoptr(PkError) error_code = NULL; /* only process this app if was created by this plugin */ - if (!gs_app_has_management_plugin (repo, plugin)) + if (!gs_plugin_packagekit_is_packagekit_app (repo, plugin)) return TRUE; /* is repo */ diff --git a/plugins/packagekit/gs-plugin-systemd-updates.c b/plugins/packagekit/gs-plugin-systemd-updates.c index 8fde004da491343cd64ebdcb76c002c4b103fbc8..0d286c7c132ae9e125521ffc80912309f260e57f 100644 --- a/plugins/packagekit/gs-plugin-systemd-updates.c +++ b/plugins/packagekit/gs-plugin-systemd-updates.c @@ -163,7 +163,7 @@ gs_plugin_systemd_refine_app (GsPluginSystemdUpdates *self, g_autoptr(GMutexLocker) locker = NULL; /* only process this app if was created by this plugin */ - if (!gs_app_has_management_plugin (app, GS_PLUGIN (self))) + if (!gs_plugin_packagekit_is_packagekit_app (app, GS_PLUGIN (self))) return; /* the package is already downloaded */ @@ -445,7 +445,7 @@ _systemd_trigger_app (GsPluginSystemdUpdates *self, return TRUE; /* only process this app if was created by this plugin */ - if (!gs_app_has_management_plugin (app, GS_PLUGIN (self))) + if (!gs_plugin_packagekit_is_packagekit_app (app, GS_PLUGIN (self))) return TRUE; /* already in correct state */ @@ -506,7 +506,7 @@ gs_plugin_update_cancel (GsPlugin *plugin, GsPluginSystemdUpdates *self = GS_PLUGIN_SYSTEMD_UPDATES (plugin); /* only process this app if was created by this plugin */ - if (!gs_app_has_management_plugin (app, plugin)) + if (!gs_plugin_packagekit_is_packagekit_app (app, plugin)) return TRUE; /* already in correct state */ @@ -533,7 +533,7 @@ gs_plugin_app_upgrade_trigger (GsPlugin *plugin, GError **error) { /* only process this app if was created by this plugin */ - if (!gs_app_has_management_plugin (app, plugin)) + if (!gs_plugin_packagekit_is_packagekit_app (app, plugin)) return TRUE; if (!gs_systemd_call_trigger_upgrade (plugin, PK_OFFLINE_ACTION_REBOOT, cancellable, error)) { diff --git a/plugins/packagekit/packagekit-common.c b/plugins/packagekit/packagekit-common.c index 042e4935d10b390c686435c845f2732cda15869f..7d78bb6d9c52b566a60f9ea374a9478b7bf4fa30 100644 --- a/plugins/packagekit/packagekit-common.c +++ b/plugins/packagekit/packagekit-common.c @@ -574,3 +574,18 @@ gs_plugin_packagekit_set_packaging_format (GsPlugin *plugin, GsApp *app) gs_app_set_metadata (app, "GnomeSoftware::PackagingFormat", "deb"); } } + +gboolean +gs_plugin_packagekit_is_packagekit_app (GsApp *app, + GsPlugin *plugin) +{ + g_autoptr(GsPlugin) mngmt_plugin = NULL; + + if (gs_app_has_management_plugin (app, plugin)) + return TRUE; + + mngmt_plugin = gs_app_dup_management_plugin (app); + + return mngmt_plugin != NULL && + g_strcmp0 (gs_plugin_get_name (mngmt_plugin), "packagekit") == 0; +} diff --git a/plugins/packagekit/packagekit-common.h b/plugins/packagekit/packagekit-common.h index 9f523684496213495a69fb239de6f0017fb4f130..b9175561a39f7e926f38b5a9e1df29eac13a001c 100644 --- a/plugins/packagekit/packagekit-common.h +++ b/plugins/packagekit/packagekit-common.h @@ -36,5 +36,7 @@ void gs_plugin_packagekit_refine_details_app (GsPlugin *plugin, GsApp *app); void gs_plugin_packagekit_set_packaging_format (GsPlugin *plugin, GsApp *app); +gboolean gs_plugin_packagekit_is_packagekit_app (GsApp *app, + GsPlugin *plugin); G_END_DECLS