--- a/finch/gntblist.c Tue Aug 03 03:04:06 2021 -0500
+++ b/finch/gntblist.c Tue Aug 03 20:50:03 2021 -0500
@@ -2996,7 +2996,7 @@
purple_signal_connect(purple_blist_get_handle(), "buddy-idle-changed", finch_blist_get_handle(),
PURPLE_CALLBACK(buddy_idle_changed), ggblist);
- plugin_manager = gplugin_manager_get_instance();
+ plugin_manager = gplugin_manager_get_default(); g_signal_connect_object(plugin_manager, "loaded-plugin",
G_CALLBACK(reconstruct_plugins_menu_cb), ggblist, 0);
g_signal_connect_object(plugin_manager, "unloaded-plugin",
--- a/finch/gntconv.c Tue Aug 03 03:04:06 2021 -0500
+++ b/finch/gntconv.c Tue Aug 03 20:50:03 2021 -0500
@@ -902,7 +902,7 @@
purple_signal_connect(purple_cmds_get_handle(), "cmd-removed", ggc,
G_CALLBACK(cmd_removed_cb), ggc);
- plugin_manager = gplugin_manager_get_instance();
+ plugin_manager = gplugin_manager_get_default(); g_signal_connect_object(plugin_manager, "loaded-plugin",
G_CALLBACK(plugin_changed_cb), ggc, 0);
g_signal_connect_object(plugin_manager, "unloaded-plugin",
--- a/libpurple/plugins.c Tue Aug 03 03:04:06 2021 -0500
+++ b/libpurple/plugins.c Tue Aug 03 20:50:03 2021 -0500
@@ -139,6 +139,7 @@
purple_plugin_load(PurplePlugin *plugin, GError **error)
+ GPluginManager *manager = NULL; @@ -147,15 +148,16 @@
if (purple_plugin_is_loaded(plugin))
- if (!gplugin_manager_load_plugin(plugin, &err)) {
- filename = gplugin_plugin_get_filename(plugin);
+ manager = gplugin_manager_get_default(); + if (!gplugin_manager_load_plugin(manager, plugin, &err)) { + filename = gplugin_plugin_get_filename(plugin); purple_debug_error("plugins", "Failed to load plugin %s: %s",
err ? err->message : "Unknown reason");
- *error = g_error_copy(err);
+ g_propagate_error(error, err); @@ -168,21 +170,23 @@
+ GPluginManager *manager = NULL; g_return_val_if_fail(plugin != NULL, FALSE);
if (!purple_plugin_is_loaded(plugin))
- if (!gplugin_manager_unload_plugin(plugin, &err)) {
- filename = gplugin_plugin_get_filename(plugin);
+ manager = gplugin_manager_get_default(); + if (!gplugin_manager_unload_plugin(manager, plugin, &err)) { + filename = gplugin_plugin_get_filename(plugin); purple_debug_error("plugins", "Failed to unload plugin %s: %s",
err ? err->message : "Unknown reason");
- *error = g_error_copy(err);
+ g_propagate_error(error, err); @@ -297,11 +301,12 @@
GList *ret = NULL, *ids, *l;
+ GPluginManager *manager = gplugin_manager_get_default(); - ids = gplugin_manager_list_plugins();
+ ids = gplugin_manager_list_plugins(manager); for (l = ids; l; l = l->next) {
- plugins = gplugin_manager_find_plugins(l->data);
+ plugins = gplugin_manager_find_plugins(manager, l->data); for (ll = plugins; ll; ll = ll->next) {
PurplePlugin *plugin = PURPLE_PLUGIN(ll->data);
@@ -325,15 +330,18 @@
purple_plugins_add_search_path(const gchar *path)
- gplugin_manager_append_path(path);
+ GPluginManager *manager = gplugin_manager_get_default(); + gplugin_manager_append_path(manager, path); purple_plugins_refresh(void)
+ GPluginManager *manager = gplugin_manager_get_default(); - gplugin_manager_refresh();
+ gplugin_manager_refresh(manager); plugins = purple_plugins_find_all();
for (l = plugins; l != NULL; l = l->next) {
@@ -365,10 +373,13 @@
purple_plugins_find_plugin(const gchar *id)
+ GPluginManager *manager = NULL; g_return_val_if_fail(id != NULL && *id != '\0', NULL);
- plugin = gplugin_manager_find_plugin(id);
+ manager = gplugin_manager_get_default(); + plugin = gplugin_manager_find_plugin(manager, id); @@ -479,32 +490,33 @@
gplugin_init(GPLUGIN_CORE_FLAGS_NONE);
+ manager = gplugin_manager_get_default(); search_path = g_getenv("PURPLE_PLUGIN_PATH");
paths = g_strsplit(search_path, G_SEARCHPATH_SEPARATOR_S, 0);
for (i = 0; paths[i]; ++i) {
- purple_plugins_add_search_path(paths[i]);
+ gplugin_manager_append_path(manager, paths[i]); - gplugin_manager_add_default_paths();
+ gplugin_manager_add_default_paths(manager); if(!g_getenv("PURPLE_PLUGINS_SKIP")) {
- purple_plugins_add_search_path(PURPLE_LIBDIR);
+ gplugin_manager_append_path(manager, PURPLE_LIBDIR); purple_debug_info("plugins", "PURPLE_PLUGINS_SKIP environment variable set, skipping normal plugin paths");
- manager = gplugin_manager_get_instance();
- g_signal_connect(manager, "loading-plugin", G_CALLBACK(plugin_loading_cb),
- g_signal_connect(manager, "loaded-plugin", G_CALLBACK(plugin_loaded_cb),
+ g_signal_connect(manager, "loading-plugin", + G_CALLBACK(plugin_loading_cb), NULL); + g_signal_connect(manager, "loaded-plugin", + G_CALLBACK(plugin_loaded_cb), NULL); g_signal_connect(manager, "unloading-plugin",
G_CALLBACK(plugin_unloading_cb), NULL);
g_signal_connect(manager, "unloaded-plugin",
--- a/meson.build Tue Aug 03 03:04:06 2021 -0500
+++ b/meson.build Tue Aug 03 20:50:03 2021 -0500
@@ -570,7 +570,7 @@
#######################################################################
#######################################################################
-gplugin_dep = dependency('gplugin', version : '>=0.32.0,<0.33.0', required : false)
+gplugin_dep = dependency('gplugin', version : '>=0.33.0,<0.34.0', required : false) gplugin_docpath = gplugin_dep.get_pkgconfig_variable('prefix') / 'share/gtk-doc/html'
--- a/pidgin/gtkconv.c Tue Aug 03 03:04:06 2021 -0500
+++ b/pidgin/gtkconv.c Tue Aug 03 20:50:03 2021 -0500
@@ -5752,9 +5752,9 @@
gtk_box_pack_start(GTK_BOX(testidea), win->notebook, TRUE, TRUE, 0);
/* Update the plugin actions when plugins are (un)loaded */
- manager = gplugin_manager_get_instance();
- g_signal_connect(manager, "loaded-plugin", G_CALLBACK(plugin_changed_cb),
+ manager = gplugin_manager_get_default(); + g_signal_connect(manager, "loaded-plugin", + G_CALLBACK(plugin_changed_cb), win); g_signal_connect(manager, "unloaded-plugin",
G_CALLBACK(plugin_changed_cb), win);
--- a/pidgin/pidginabout.c Tue Aug 03 03:04:06 2021 -0500
+++ b/pidgin/pidginabout.c Tue Aug 03 20:50:03 2021 -0500
@@ -425,8 +425,9 @@
pidgin_about_dialog_load_plugin_search_paths(PidginAboutDialog *about) {
+ GPluginManager *manager = gplugin_manager_get_default(); markup = g_strdup_printf("<b>%s</b>", _("Plugin Search Paths"));
@@ -437,13 +438,16 @@
/* add the search paths */
- for(path = gplugin_manager_get_paths(); path != NULL; path = path->next) {
+ paths = gplugin_manager_get_paths(manager); gtk_tree_store_append(about->build_info_store, &iter, §ion);
gtk_tree_store_set(about->build_info_store, &iter,
+ 0, (gchar*)(paths->data), --- a/pidgin/pidginpluginsmenu.c Tue Aug 03 03:04:06 2021 -0500
+++ b/pidgin/pidginpluginsmenu.c Tue Aug 03 20:50:03 2021 -0500
@@ -255,7 +255,7 @@
(GDestroyNotify)gtk_widget_destroy);
/* Connect to the plugin manager's signals so we can stay up to date. */
- manager = gplugin_manager_get_instance();
+ manager = gplugin_manager_get_default(); g_signal_connect_object(manager, "loaded-plugin",
G_CALLBACK(pidgin_plugins_menu_plugin_loaded_cb),
--- a/subprojects/gplugin.wrap Tue Aug 03 03:04:06 2021 -0500
+++ b/subprojects/gplugin.wrap Tue Aug 03 20:50:03 2021 -0500
@@ -1,4 +1,4 @@
url = https://keep.imfreedom.org/gplugin/gplugin