pidgin/pidgin

Really disable some plugins
default tip
24 hours ago, Gary Kramlich
44125b8e3b27
Really disable some plugins

Previous we disabled some plugins that we want to keep around but can't port
yet by setting `build_by_default` to `false`. However, this isn't working on
many machines. I haven't figured out why, so instead lets just make their
meson.build files exit early.

Testing Done:
Ran the turtles on a machine that was still building these plugins.

Reviewed at https://reviews.imfreedom.org/r/3142/
/*
* Purple - Internet Messaging Library
* Copyright (C) Pidgin Developers <devel@pidgin.im>
*
* Purple is the legal property of its developers, whose names are too numerous
* to list here. Please refer to the COPYRIGHT file distributed with this
* source distribution.
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this library; if not, see <https://www.gnu.org/licenses/>.
*/
#if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION)
# error "only <purple.h> may be included directly"
#endif
#ifndef PURPLE_PLUGIN_INFO_H
#define PURPLE_PLUGIN_INFO_H
#include <glib.h>
#include <gio/gio.h>
#include <gplugin.h>
#include <gplugin-native.h>
#include "purpleversion.h"
#define PURPLE_TYPE_PLUGIN_INFO (purple_plugin_info_get_type())
/**
* PurplePluginInfo:
*
* #PurplePluginInfo is a #GPluginPluginInfo subclass that adds additional
* libpurple specific properties.
*
* Since: 3.0
*/
PURPLE_AVAILABLE_IN_3_0
G_DECLARE_DERIVABLE_TYPE(PurplePluginInfo, purple_plugin_info, PURPLE,
PLUGIN_INFO, GPluginPluginInfo)
#include "plugins.h"
/**
* PurplePluginInfoClass:
*
* An opaque type representing the class of a #PurplePluginInfo.
*
* Since: 3.0
*/
struct _PurplePluginInfoClass {
/*< private >*/
GPluginPluginInfoClass parent;
gpointer reserved[4];
};
/**
* PurplePluginInfoFlags:
* @PURPLE_PLUGIN_INFO_FLAGS_INTERNAL: Plugin is not shown in UI lists
* @PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD: Auto-load the plugin
*
* Flags that can be used to treat plugins differently.
*
* Since: 3.0
*/
PURPLE_AVAILABLE_TYPE_IN_3_0
typedef enum /*< flags >*/
{
PURPLE_PLUGIN_INFO_FLAGS_INTERNAL = 1 << 1,
PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD = 1 << 2,
} PurplePluginInfoFlags;
/**
* PURPLE_PLUGIN_ABI_VERSION:
* @major: The major version of libpurple to target.
* @minor: The minor version of libpurple to target.
*
* Packs @major and @minor into an integer to be used as an abi version for
* gplugin.
*
* Note: The lower six nibbles represent the ABI version for libpurple, the
* rest are required by GPlugin.
*
* Returns: An ABI version to set in plugins using major and minor versions.
*/
#define PURPLE_PLUGIN_ABI_VERSION(major,minor) \
(0x01000000 | ((major) << 16) | (minor))
/**
* PURPLE_PLUGIN_ABI_MAJOR_VERSION:
* @abi: The abi version.
*
* Extracts the purple major version from @abi.
*
* Returns: The major version from an ABI version
*/
#define PURPLE_PLUGIN_ABI_MAJOR_VERSION(abi) \
((abi >> 16) & 0xff)
/**
* PURPLE_PLUGIN_ABI_MINOR_VERSION:
* @abi: The abi version.
*
* Extracts the purple minor version from @abi.
*
* Returns: The minor version from an ABI version
*/
#define PURPLE_PLUGIN_ABI_MINOR_VERSION(abi) \
(abi & 0xffff)
/**
* PURPLE_ABI_VERSION:
*
* A convenience macro that returns an ABI version using PURPLE_MAJOR_VERSION
* and PURPLE_MINOR_VERSION
*/
#define PURPLE_ABI_VERSION PURPLE_PLUGIN_ABI_VERSION(PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION)
G_BEGIN_DECLS
/**
* purple_plugin_info_new:
* @first_property: The first property name
* @...: The value of the first property, followed optionally by more
* name/value pairs, followed by %NULL
*
* Creates a new #PurplePluginInfo instance to be returned from
* #plugin_query of a plugin, using the provided name/value pairs.
*
* All properties except <literal>"id"</literal> and
* <literal>"purple-abi"</literal> are optional.
*
* Valid property names are:
* <informaltable frame='none'>
* <tgroup cols='2'><tbody>
* <row><entry><literal>"id"</literal></entry>
* <entry>(string) The ID of the plugin.</entry>
* </row>
* <row><entry><literal>"abi-version"</literal></entry>
* <entry>(<type>guint32</type>) The ABI version required by the
* plugin.</entry>
* </row>
* <row><entry><literal>"name"</literal></entry>
* <entry>(string) The translated name of the plugin.</entry>
* </row>
* <row><entry><literal>"version"</literal></entry>
* <entry>(string) Version of the plugin.</entry>
* </row>
* <row><entry><literal>"category"</literal></entry>
* <entry>(string) Primary category of the plugin.</entry>
* </row>
* <row><entry><literal>"summary"</literal></entry>
* <entry>(string) Brief summary of the plugin.</entry>
* </row>
* <row><entry><literal>"description"</literal></entry>
* <entry>(string) Full description of the plugin.</entry>
* </row>
* <row><entry><literal>"authors"</literal></entry>
* <entry>(<type>const gchar * const *</type>) A %NULL-terminated list of
* plugin authors. format: First Last &lt;user\@domain.com&gt;</entry>
* </row>
* <row><entry><literal>"website"</literal></entry>
* <entry>(string) Website of the plugin.</entry>
* </row>
* <row><entry><literal>"icon"</literal></entry>
* <entry>(string) Path to a plugin's icon.</entry>
* </row>
* <row><entry><literal>"license-id"</literal></entry>
* <entry>(string) Short name of the plugin's license. This should
* either be an identifier of the license from
* <ulink url="http://dep.debian.net/deps/dep5/#license-specification">
* DEP5</ulink> or "Other" for custom licenses.</entry>
* </row>
* <row><entry><literal>"license-text"</literal></entry>
* <entry>(string) The text of the plugin's license, if unlisted on
* DEP5.</entry>
* </row>
* <row><entry><literal>"license-url"</literal></entry>
* <entry>(string) The plugin's license URL, if unlisted on DEP5.</entry>
* </row>
* <row><entry><literal>"dependencies"</literal></entry>
* <entry>(<type>const gchar * const *</type>) A %NULL-terminated list of
* plugin IDs required by the plugin.</entry>
* </row>
* <row><entry><literal>"flags"</literal></entry>
* <entry>(#PurplePluginInfoFlags) The flags for a plugin.</entry>
* </row>
* </tbody></tgroup>
* </informaltable>
*
* See #PURPLE_PLUGIN_ABI_VERSION,
* <link linkend="chapter-plugin-ids">Plugin IDs</link>.
*
* Returns: A new #PurplePluginInfo instance.
*
* Since: 3.0
*/
PURPLE_AVAILABLE_IN_3_0
GPluginPluginInfo *purple_plugin_info_new(const char *first_property, ...) G_GNUC_NULL_TERMINATED;
/**
* purple_plugin_info_get_flags:
* @info: The plugin's info instance.
*
* Returns the plugin's flags.
*
* Returns: The flags of the plugin.
*
* Since: 3.0
*/
PURPLE_AVAILABLE_IN_3_0
PurplePluginInfoFlags purple_plugin_info_get_flags(PurplePluginInfo *info);
/**
* purple_plugin_info_get_error:
* @info: The plugin info.
*
* Returns an error in the plugin info that would prevent the plugin from being
* loaded.
*
* Returns: The plugin info error, or %NULL.
*
* Since: 3.0
*/
PURPLE_AVAILABLE_IN_3_0
const gchar *purple_plugin_info_get_error(PurplePluginInfo *info);
/**
* purple_plugin_info_get_unloaded:
* @info: The #PurplePluginInfo instance.
*
* Gets whether or not the plugin has been unloaded.
*
* Returns: %TRUE if the plugin has been unloaded previously, or %FALSE if not.
*
* Since: 3.0
*/
PURPLE_AVAILABLE_IN_3_0
gboolean purple_plugin_info_get_unloaded(PurplePluginInfo *info);
/**
* purple_plugin_info_set_unloaded:
* @info: The #PurplePluginInfo instance.
* @unloaded: %TRUE to say the plugin has been unloaded.
*
* Sets the unloaded state of @info to @unloaded.
*
* Since: 3.0
*/
PURPLE_AVAILABLE_IN_3_0
void purple_plugin_info_set_unloaded(PurplePluginInfo *info, gboolean unloaded);
/**
* purple_plugin_info_get_action_group:
* @info: The instance.
*
* Gets the [class:Gio.ActionGroup] from @info if one is set.
*
* Returns: (transfer none): The action group.
*
* Since: 3.0
*/
PURPLE_AVAILABLE_IN_3_0
GActionGroup *purple_plugin_info_get_action_group(PurplePluginInfo *info);
/**
* purple_plugin_info_get_action_menu:
* @info: The instance.
*
* Gets the [class:Gio.MenuModel] from @info if one is set.
*
* Returns: (transfer none): The menu model.
*
* Since: 3.0
*/
PURPLE_AVAILABLE_IN_3_0
GMenuModel *purple_plugin_info_get_action_menu(PurplePluginInfo *info);
G_END_DECLS
#endif /* PURPLE_PLUGIN_INFO_H */