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/
environment:
- PACKAGECLOUD_REPO=experimental
- ARCH=amd64
- BUILD_NUMBER
- REGISTRY_HOST=docker.io
- REPOSITORY=pidgin/builders
tasks:
import:
type: docker/import
files: .:.
build:
type: docker/run
image: ${REGISTRY_HOST}/${REPOSITORY}:${DISTRO}-${VERSION}-${ARCH}
clean:
type: convey/clean
files:
- appimage-x86_64
- pvs-studio
- scanbuild
export:
type: docker/export
files: ${DISTRO}-${VERSION}-${ARCH}
build-target:
type: docker/run
image: ${REGISTRY_HOST}/${REPOSITORY}:${TARGET}
export-target:
type: docker/export
files: ${TARGET}
plans:
pidgin3-appimage-x86_64:
environment:
- TARGET=appimage-x86_64
- BUILD_NUMBER=0
- COMMIT_SHORT=${HG_COMMIT_SHORT}
- VERSION=${BUILD_NUMBER}~${COMMIT_SHORT}
- RECIPE=Pidgin3
- CONFIGURE_ARGS=-Dconsoleui=False
stages:
- tasks: [import, build-target, export-target]
clean:
stages:
- tasks: [clean]
mingw-w64-x86_64:
environment: [DISTRO=mingw, VERSION=w64, ARCH=x86_64]
stages:
- tasks: [import, build]
pvs-studio:
environment:
- TARGET=pvs-studio
- PVS_STUDIO_USERNAME
- PVS_STUDIO_KEY
stages:
- tasks: [import, build-target]
- tasks: [export-target]
run: always
scanbuild:
environment: [TARGET=scanbuild]
stages:
- tasks: [import, build-target]
- tasks: [export-target]
run: always
subproject-build:
environment: [TARGET=subproject-build]
stages:
- tasks: [import, build-target]