pidgin/pidgin

Port wincred keyring to PurpleCredentialManager

2021-01-30, Elliott Sales de Andrade
548fed625b8a
Port wincred keyring to PurpleCredentialManager

* Inline PURPLE_PLUGIN_INIT in wincred.
* Add skeleton of wincred PurpleCredentialProvider object.
* Implement password reading.
* Implement wincred password writing.
* Implement wincred password clearing.
* Autoload wincred keyring plugin.
* Cleanup formatting.

Testing Done:
Added XMPP account, saved password, disabled and re-enabled account which kept the password. Restarted Pidgin and password was still saved. Removed XMPP account, and password was deleted from Credential Manager.

I'm not sure that the password needs to be converted from UTF-8 to "Unicode", as I did not test modifying the password in Credential Manager.

Bugs closed: PIDGIN-17489

Reviewed at https://reviews.imfreedom.org/r/466/
##############################################################################
# General Options
option('doc', type : 'boolean', value : false,
description : 'build documentation with gtk-doc')
option('extraversion', type : 'string',
description : 'extra version number to be displayed in Help->About and --help (for packagers)')
option('introspection', type : 'boolean', value : true,
description : 'build introspection data')
option('nettle', type : 'feature',
description : 'enable Nettle support')
option('nls', type : 'boolean', value : true,
description : 'enable installation of translation files')
option('pixmaps-install', type : 'boolean', value : true,
description : 'enable installation of pixmap files - Pidgin still needs them!')
##############################################################################
# Libpurple Options
option('farstream', type : 'feature',
description : 'compile with farstream support')
option('gstreamer-video', type : 'feature',
description : 'compile with GStreamer 1.0 Video Overlay support')
option('kwallet', type : 'feature',
description : 'enable KWallet support')
option('plugins', type : 'boolean', value : true,
description : 'compile plugins')
option('secret-service', type : 'feature',
description : 'enable Secret Service support')
option('vv', type : 'feature',
description : 'compile with voice and video support')
##############################################################################
# Protocol Plugins
option('avahi', type : 'feature',
description : 'compile with avahi (required for Bonjour support)')
option('cyrus-sasl', type : 'feature',
description : 'enable Cyrus SASL support for XMPP/IRC')
option('dynamic-prpls', type : 'string', value: 'all',
description : 'specify which protocols to build dynamically')
option('krb4', type : 'boolean', value : false,
description : 'compile Zephyr plugin with Kerberos 4 support')
option('libgadu', type : 'feature',
description : 'compile with libgadu (required for GaduGadu support)')
option('meanwhile', type : 'feature',
description : 'compile with meanwhile')
option('silc', type : 'feature',
description : 'compile with SILC plugin')
option('zephyr', type : 'feature',
description : 'compile Zephyr plugin against external libzephyr')
##############################################################################
# Pidgin Options
option('console-logging', type : 'boolean', value : false,
description : 'compile with console logging support')
option('gtkui', type : 'boolean', value : true,
description : 'compile with GTK+ user interface')
option('unity-integration', type : 'feature',
description : 'compile with support for unity integration plugin')
##############################################################################
# Finch Options
option('consoleui', type : 'boolean', value : true,
description : 'compile with console user interface')
option('x', type : 'boolean', value : true)