blog.bouah.net/content/posts/poezio-0.14.fr.md
Maxime “pep” Buquet 65313ddcbd
poezio-0.14: update
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-04-03 23:47:33 +02:00

163 lines
8.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "Nouvelles de Poezio et de son ecosystème"
date: 2022-04-02T12:00:00+01:00
translationKey: 'poezio-0.14'
tags: [XMPP, Poezio, Slixmpp, OMEMO, Rust]
draft: true
---
De nouvelles versions des logiciels proches de Poezio, un client TUI (Terminal
UI) pour XMPP, ainsi que Poezio lui-même, sont récemment sorties. Parmi
ceux-ci, la bibliothèque XMPP [Slixmpp][slix], et les plugins OMEMO de
[poezio][poezio-omemo] et de [slixmpp][slix-omemo].
# Corrections de bugs et diverses améliorations
[Mathieui][mathieui] a déjà rédigé une [note de mise à jour pour Slixmpp
(en)][slix180] et je vous invite à la lire! Cette nouvelle version inclut
évidemment plein de corrections de bugs, mais aussi des changements internes
concernant une API async, qui peuvent peut-être vous concerner.
Poezio lui aussi a reçu beaucoup d'améliorations.
En interne, d'une part, notre branche par défaut a été déplacée vers « main ».
Plein d'annotations de types on été ajoutés, des convertions implicites
retirés. La gestion des évènements est maintenant en majorité async. Les API
de Slixmpp sont utilisés au profit de celles qui avaient précédemment été
faites pour poezio. Du refactoring, et aussi des améliorations concernant les
performances de l'application.
La license a aussi été changée, et Poezio est maintenant sous [GPLv3+][GPL]!
Même si je ne suis pas particulièrement en faveur de la propriété
intellectuelle[^0], c'est un levier facilement accessible que nous avons
contre le capitalisme[^1]. Poezio est aussi un endroit où trouver plein
d'exemples d'utilisation de Slixmpp, et en ce sens du code GPL pourrait
permettre aux 4 libertés d'atteindre les utilisateurices. Ça nous permettrait
aussi d'intégrer poezio-omemo dans poezio directement. Je souhaite
personellement que la license de Slixmpp soit aussi changée.
[^0]: *TODO: article à écrire.* Ça se résumerait certainement à « Abolition de
la propriété intellectuelle, ainsi que la propriété privée »
[^1]: Quand ils ne décident pas de l'ignorer et de nous faire le doigt.
Et d'autres améliorations plus visibles pour les utilisateurices! Pour en citer
quelques-unes, il est maintenant possible d'utiliser des URI comme
`xmpp:...?join` en utilisant `/join`, et la création de salons « impromptus »
et maintenant plus fiable et ces salons auront des noms plus courts. Vous
pouvez lire plus [dans le changelog (en)][poezio-changelog].
Les plugins aussi ont été améliorés. Un nouveau plugin `untrackme` remplace
`remove_get_trackers` qui est maintenant déprecié. [Link Mauve][linkmauve] a
aussi développé un plugin appelé `sticker` (pour les envoyer), similaire à ce
que [Movim][movim] fait depuis des années. La gestion des présences étendues
(activity, gaming, mood, user tune) a été enlevée de Poezio et déplacée dans le
plugin `user_extras`. Ainsi que plein de corrections.
Beaucoup de ces améliorations et corrections ont été réalisées par
[mathieui][mathieui], qui est de loin le plus gros contributeur sur cette
version, et de manière générale la personne qui connait le mieux le projet.
Merci aussi à louiz de nous avoir fourni l'infrastructure tout ce temps, et à
eijebong, Ge0rG, Kaghav Gururajan, kaliko, Thomas Hrnciar et southerntofu pour
les nombreux patchs.
# Les archives
La gestion de l'archive ([MAM][XEP-0313]) faisait déjà partie de la dernière
version, mais elle a été retravaillée, et devrait aussi être plus fiable.
En ouvrant une tab, Poezio va télécharger autant de messages nécessaires
pour remplir 2 pages d'écran, si il n'a aucune archive pour cette tab. Par
défaut, les archives sont enregistrées automatiquement en local, ce qui permet
de ne pas re-télécharger les messages la prochaine fois qu'ils sont demandés,
mais de les lire directement de la copie locale.
Pour lire des messages plus anciens dans une tab, il suffit de scroller avec
`PageUp` et Poezio se chargera d'aller chercher plus de messages si
nécéssaire.
Tout ceci est configurable avec des nouvelles options, comme
[`mam_sync`][mam_sync] ou [`mam_sync_limit`][mam_sync_limit] pour
activer/désactiver l'utilisation de [MAM][XEP-0313] ou combien de messages
sont téléchargés au plus. Et aussi [`use_log`][use_log] pour configurer
l'enregistrement des messages en local.
Du travail autour de la gestion des ID de messages -- que notre format de log
n'enregistre pas -- devra être prévu par la suite pour permettre de
dédupliquer plus facilement les messages.
# Chiffrement de bout-à-bout
L'API `E2EEPlugin` de Poezio a été améliorée pour répondre aux besoins des
plugins poezio-omemo et slixmpp-omemo ainsi qu'aux changements dans la
bibliothèque OMEMO. Ces deux plugins ont aussi eu le droit à leur lot de
changement!
Les *heartbeats* (« pulsation ») sont maintenant supportés. Les heartbeats
sont des messages méta qui ne contiennent que les informations nécessaires au
chiffrement, et sont utilisés pour renforcer la *forward secrecy*
([confidentialité persistante][FS]). Ceci est particulièrement utile dans des
clients comme Poezio qui peuvent tourner en fond, et qui reçoivent beaucoup de
messages sans pour autant y répondre.
D'autres changements sont apparus, comme la coloration des empreintes de clés
(*fingerprints*) utilisant la méthode décrite dans [Consistent Color
Generation][XEP-0392] -- comme spécifié dans la version actuelle (0.8)
d'[OMEMO][XEP-0384] -- ou l'envoi de fichiers chiffrés (URI aesgcm).
Ce qui n'a pas encore changé, c'est le manque d'interface utilisateur, et la
gestion de la confiance des clés. Avec un peu de motivation pour travailler
sur l'interface, ça ne devrait pas trop tarder.
# La suite
Dans l'ensemble, il n'y a pas ou peu de changements révolutionnaires, mais
cette version vient corriger plein de petites coupures qui je l'espère
devraient rendre la vie des utilisateurices plus agréable. Ce qui me fait
penser que même si Poezio est loin d'être parfait, il n'y a plus à priori de
gros changements à faire.
Il reste pourtant quelques changements qui vont demander beaucoup de
refactoring, des changements comme la gestion de comptes multiples, ou de
façon général une maintenance plus facile.
Nous avons décidé de convertir Poezio vers Rust. D'une part pour être capable
de refactorer le projet plus facilement, mais aussi parce que c'est un langage
que nous avons appris à apprécier au fil des années via l'expérience d'autres
projets, et plus particulièrement au sein de [xmpp-rs][xmpp-rs], une
bibliothèque XMPP en Rust.
Tout ça devrait commencer dès la version sortie, et nous invitons les
personnes intéressées à nous rejoindre!
[poezio]: https://lab.louiz.org/poezio/poezio
[slix]: https://lab.louiz.org/poezio/slixmpp
[poezio-omemo]: https://lab.louiz.org/poezio/poezio-omemo
[slix-omemo]: https://lab.louiz.org/poezio/slixmpp-omemo
[movim]: https://movim.eu
[xmpp-rs]: https://xmpp.rs
[mathieui]: https://mathieui.net
[linkmauve]: https://linkmauve.fr
[poezio014]: https://lab.louiz.org/poezio/poezio/-/tags/v0.14
[poezio-changelog]: https://lab.louiz.org/poezio/poezio/-/raw/v0.14/CHANGELOG
[slix180]: https://lab.louiz.org/poezio/slixmpp/-/tags/slix-1.8.0
[slix181]: https://lab.louiz.org/poezio/slixmpp/-/tags/slix-1.8.1
[slix182]: https://lab.louiz.org/poezio/slixmpp/-/tags/slix-1.8.2
[poezio-omemo050]: https://lab.louiz.org/poezio/poezio-omemo/-/tags/v0.5.0
[poezio-omemo051]: https://lab.louiz.org/poezio/poezio-omemo/-/tags/v0.5.1
[poezio-omemo060]: https://lab.louiz.org/poezio/poezio-omemo/-/tags/v0.6.0
[slix-omemo060]: https://lab.louiz.org/poezio/slixmpp-omemo/-/tags/v0.6.0
[slix-omemo061]: https://lab.louiz.org/poezio/slixmpp-omemo/-/tags/v0.6.1
[slix-omemo070]: https://lab.louiz.org/poezio/slixmpp-omemo/-/tags/v0.7.0
[GPL]: https://fr.wikipedia.org/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU
[FS]: https://fr.wikipedia.org/wiki/Confidentialit%C3%A9_persistante
[XEP-0313]: https://xmpp.org/extensions/xep-0313.html
[XEP-0384]: https://xmpp.org/extensions/xep-0384.html
[XEP-0392]: https://xmpp.org/extensions/xep-0392.html
[mam_sync]: https://doc.poez.io/configuration.html#term-mam_sync
[mam_sync_limit]: https://doc.poez.io/configuration.html#term-mam_sync_limit
[use_log]: https://doc.poez.io/configuration.html#term-use_log