pidgin/pidgin

Redesign the presence manager a bit

3 months ago, Gary Kramlich
722be3b1a8aa
Redesign the presence manager a bit

The presence manager now stores everything in a directory rather than a single
ini file. This avoids relocating schemas which seems to have a number of
issues.

Also bind the "active" setting to the "active-presence" property so that you
can change the active presence via the `manager.ini` gsettings keyfile.

So other various tweaks as well.

Testing Done:
Opened `manager.ini` and toggled the active status between a few I created.

Consulted with the turtles and ran the `presence_manager` and `saved_presence` unit tests under valgrind.

Reviewed at https://reviews.imfreedom.org/r/2912/
---
environment:
- BUILD_NUMBER
- REPOSITORY=pidgin/builders
- REGISTRY=docker.io
- DOCS_BUILD_IMAGE=${REGISTRY}/${REPOSITORY}:debian-trixie-amd64
tasks:
import:
type: docker/import
files: .:.
build:
type: docker/run
image: ${REGISTRY}/${REPOSITORY}:${TARGET}
clean:
type: convey/clean
files:
- alpine-edge-amd64
- clang
- debian-trixie-amd64
- debian-trixie-arm64
- debian-trixie-riscv64
- fedora-39-amd64
- fedora-rawhide-amd64
- scanbuild
- ubuntu-mantic-amd64
docs-clean:
type: convey/clean
files:
- pidgin3-docs.zip
- purple3-docs.zip
docs-build:
type: docker/run
image: ${DOCS_BUILD_IMAGE}
workdir: ${CONVEY_WORKSPACE}
shell: /bin/bash
script:
- set -ex
- meson setup build-docs -Ddoc=true
- ninja -C build-docs doc
# - pushd build-docs/doc/reference/finch
# - mv finch finch3
# - zip -9r finch3-docs.zip finch3
# - popd
- pushd build-docs/doc/reference/pidgin
- mv pidgin pidgin3
- zip -9r pidgin3-docs.zip pidgin3
- popd
- pushd build-docs/doc/reference/libpurple
- mv libpurple purple3
- zip -9r purple3-docs.zip purple3
docs-export:
type: docker/export
files:
- build-docs/doc/reference/libpurple/purple3-docs.zip:purple3-docs.zip
- build-docs/doc/reference/pidgin/pidgin3-docs.zip:pidgin3-docs.zip
export:
type: docker/export
files: build-${TARGET}:${TARGET}
bare-export:
type: docker/export
files: ${TARGET}:${TARGET}
plans:
alpine-edge-amd64:
environment: [TARGET=alpine-edge-amd64]
stages:
- tasks: [import, build]
- tasks: [export]
run: always
clang:
environment: [TARGET=clang]
stages:
- tasks: [import, build]
- tasks: [export]
run: always
clean:
stages:
- tasks: [clean, docs-clean]
debian-trixie-amd64:
environment: [TARGET=debian-trixie-amd64]
stages:
- tasks: [import, build]
- tasks: [export]
run: always
debian-trixie-arm64:
environment: [TARGET=debian-trixie-arm64]
stages:
- tasks: [import, build]
- tasks: [export]
run: always
debian-trixie-riscv64:
environment: [TARGET=debian-trixie-riscv64]
stages:
- tasks: [import, build]
- tasks: [export]
run: always
docs:
stages:
- tasks: [docs-clean, import, docs-build, docs-export]
fedora-39-amd64:
environment: [TARGET=fedora-39-amd64]
stages:
- tasks: [import, build]
- tasks: [export]
run: always
fedora-rawhide-amd64:
environment: [TARGET=fedora-rawhide-amd64]
stages:
- tasks: [import, build]
- tasks: [export]
run: always
scanbuild:
environment: [TARGET=scanbuild]
stages:
- tasks: [import, build]
- tasks: [export]
run: always
ubuntu-mantic-amd64:
environment: [TARGET=ubuntu-mantic-amd64]
stages:
- tasks: [import, build]
- tasks: [export]
run: always