2022-03-31 18:49:18 +00:00
|
|
|
|
---
|
|
|
|
|
title: "Updates from the Poezio ecosystem"
|
2022-04-10 15:59:28 +00:00
|
|
|
|
date: 2022-04-10T12:00:00+01:00
|
2022-03-31 18:49:18 +00:00
|
|
|
|
translationKey: 'poezio-0.14'
|
2022-04-01 00:00:56 +00:00
|
|
|
|
tags: [XMPP, Poezio, Slixmpp, OMEMO, Rust]
|
2022-03-31 18:49:18 +00:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
Releases have happened recently that revolve around [Poezio][poezio], a TUI
|
2022-04-01 00:11:24 +00:00
|
|
|
|
(Terminal UI) client for XMPP, including Poezio itself, its backend XMPP
|
|
|
|
|
library [Slixmpp][slix], and also the [poezio][poezio-omemo] and
|
|
|
|
|
[slixmpp][slix-omemo] plugins for OMEMO.
|
2022-03-31 18:49:18 +00:00
|
|
|
|
|
|
|
|
|
# Many bug fixes and improvements
|
|
|
|
|
|
2022-04-29 20:45:37 +00:00
|
|
|
|
<figure class="center-img">
|
|
|
|
|
<a href="/2022/04/poezio-full.avif">
|
|
|
|
|
<picture>
|
|
|
|
|
<source srcset="/2022/04/poezio-full.avif" type="image/avif" />
|
|
|
|
|
<img
|
|
|
|
|
decoding="async"
|
|
|
|
|
src="/2022/04/poezio-full.png"
|
|
|
|
|
alt="Poezio example screenshot 2"
|
|
|
|
|
/>
|
|
|
|
|
</picture>
|
|
|
|
|
</a>
|
|
|
|
|
<a href="/2022/04/poezio-full.2.avif">
|
|
|
|
|
<picture>
|
|
|
|
|
<source srcset="/2022/04/poezio-full.2.avif" type="image/avif" />
|
|
|
|
|
<img
|
|
|
|
|
decoding="async"
|
|
|
|
|
src="/2022/04/poezio-full.2.png"
|
|
|
|
|
alt="Poezio example screenshot 1"
|
|
|
|
|
/>
|
|
|
|
|
</picture>
|
|
|
|
|
</a>
|
|
|
|
|
<figcaption>Examples of screenshots. Thanks jonas’ for the blue theme!</figcaption>
|
2022-04-10 15:59:28 +00:00
|
|
|
|
</figure>
|
|
|
|
|
|
2022-03-31 18:49:18 +00:00
|
|
|
|
[Mathieui][mathieui] has already made a proper [release note for
|
2022-04-01 22:38:18 +00:00
|
|
|
|
Slixmpp][slix180] and I invite you to read it! It includes many
|
2022-03-31 18:49:18 +00:00
|
|
|
|
bugfixes of course, and internal changes around async handling, that may
|
|
|
|
|
reflect on some of the APIs you are using.
|
|
|
|
|
|
|
|
|
|
Poezio has also seen many improvements.
|
|
|
|
|
|
|
|
|
|
Internally, for one, our default branch has also been moved to "main", many
|
|
|
|
|
type hints have been added, implicit casts (safeJID) have been removed, lots
|
|
|
|
|
of event handlers and calls are now async, APIs from Slixmpp are being used
|
|
|
|
|
instead of redoing our own, many refactoring, various performance
|
|
|
|
|
improvements.
|
|
|
|
|
|
2022-04-08 00:19:30 +00:00
|
|
|
|
Pypy3 support was removed because it was causing many users to use the cffi
|
2022-04-10 15:59:28 +00:00
|
|
|
|
module specifically implemented for pypy3 instead of the more performant C
|
|
|
|
|
implementation. For those who are running from sources and not using the
|
|
|
|
|
update script, don't forget to run `make` to build the C module.
|
2022-04-08 00:19:30 +00:00
|
|
|
|
|
2022-04-01 22:38:18 +00:00
|
|
|
|
A license change has happened, and Poezio is now under [GPLv3+][GPL]! While I am not
|
2022-03-31 23:32:28 +00:00
|
|
|
|
exactly in favour of intellectual property[^0], this is a straightforward
|
|
|
|
|
lever we have against capitalism[^1]. Poezio being a prime resource for
|
|
|
|
|
Slixmpp examples, GPL code should reasonably ensure that the 4 freedoms reach
|
2022-03-31 23:51:30 +00:00
|
|
|
|
end-users. In practice, this should allow for poezio-omemo to be merged into
|
|
|
|
|
Poezio. I am now personally hoping for Slixmpp to change its license as well.
|
2022-03-31 23:32:28 +00:00
|
|
|
|
|
|
|
|
|
[^0]: *TODO: write about this.* A TL;DR would certainly be "abolish intellectual
|
2022-03-31 18:49:18 +00:00
|
|
|
|
property, and private property in general".
|
|
|
|
|
[^1]: When they don't decide to ignore it and give us the finger.
|
|
|
|
|
|
2022-03-31 23:32:28 +00:00
|
|
|
|
And other changes more visible to users! To name a few, quality of life
|
|
|
|
|
improvements such as `xmpp:...?join` URIs handling in `/join`, impromptu rooms
|
2022-04-06 16:49:39 +00:00
|
|
|
|
creation is now more reliable and creates rooms with shorter names, and tab
|
|
|
|
|
names in the activity bar can be colored using [Consistent Color
|
|
|
|
|
Generation][XEP-0392] by setting [`autocolor_tab_names`][autocolor_tab_names]
|
|
|
|
|
to `True`. Read more [in the changelog][poezio-changelog].
|
|
|
|
|
|
|
|
|
|
<figure>
|
|
|
|
|
<img
|
|
|
|
|
decoding="async"
|
|
|
|
|
src="/2022/04/poezio-tab-colors.png"
|
|
|
|
|
alt="Poezio colored tab numbers"
|
|
|
|
|
/>
|
|
|
|
|
<figcaption>The tab name color on top can also be reversed
|
|
|
|
|
(foreground/background) in the theme to look the same as the activity bar
|
|
|
|
|
below.</figcaption>
|
|
|
|
|
</figure>
|
2022-03-31 18:49:18 +00:00
|
|
|
|
|
2022-03-31 23:32:28 +00:00
|
|
|
|
Plugins have seen changes as well. A new `untrackme` plugin replaces the now
|
2022-05-11 10:37:07 +00:00
|
|
|
|
deprecated `remove_get_trackers`. [Link Mauve][linkmauve] has also developed
|
2022-03-31 23:32:28 +00:00
|
|
|
|
a `sticker` plugin (to send them), similar in essence to what [Movim][movim]
|
|
|
|
|
has been doing for ages. Rich presence (activity, gaming, mood and user tune)
|
|
|
|
|
has been removed from Poezio core and moved in the `user_extras` plugin. And
|
|
|
|
|
again many fixes.
|
2022-03-31 18:49:18 +00:00
|
|
|
|
|
2022-04-08 00:19:30 +00:00
|
|
|
|
<figure>
|
2022-04-10 17:52:40 +00:00
|
|
|
|
<video controls="true" poster="/2022/04/poezio-sticker.png">
|
|
|
|
|
<source src="/2022/04/poezio-sticker-av1.webm" type="video/webm;codecs=av1" />
|
|
|
|
|
<source src="/2022/04/poezio-sticker-vp9.webm" type="video/webm;codecs=vp9" />
|
2022-04-10 18:11:29 +00:00
|
|
|
|
<source src="/2022/04/poezio-sticker-vp8.webm" type="video/webm;codecs=vp8" />
|
2022-04-08 00:19:30 +00:00
|
|
|
|
<picture>
|
|
|
|
|
<source srcset="/2022/04/poezio-sticker.avif" type="image/avif" />
|
|
|
|
|
<img
|
|
|
|
|
decoding="async"
|
|
|
|
|
src="/2022/04/poezio-sticker.png"
|
|
|
|
|
alt="Sticker picker tool in front with Poezio and Dino in the back."
|
|
|
|
|
/>
|
|
|
|
|
</picture>
|
|
|
|
|
</video>
|
|
|
|
|
<figcaption>Poezio sticker plugin in action!</figcaption>
|
|
|
|
|
</figure>
|
|
|
|
|
|
2022-03-31 18:49:18 +00:00
|
|
|
|
Many of these fixes have been realized by [mathieui][mathieui], who is by far
|
|
|
|
|
the biggest committer on the release, and in general probably the person with
|
|
|
|
|
the best understanding of the project. Thanks also to louiz for providing the
|
|
|
|
|
infrastructure all this time, and to eijebong, Ge0rG, Kaghav Gururajan,
|
2022-04-06 20:06:06 +00:00
|
|
|
|
kaliko, Thomas Hrnciar, jonas’, and southerntofu for the many patches.
|
2022-03-31 18:49:18 +00:00
|
|
|
|
|
2022-04-03 21:47:33 +00:00
|
|
|
|
# Archiving
|
|
|
|
|
|
|
|
|
|
Archive handling ([MAM][XEP-0313]) was already in the previous release, but
|
|
|
|
|
has been reworked and should now be more reliable.
|
|
|
|
|
|
|
|
|
|
When opening a tab, Poezio will fetch 2 screen pages worth of messages if it
|
|
|
|
|
has no logs for this tab. Archives are automatically stored locally if
|
2022-05-11 10:37:07 +00:00
|
|
|
|
configured (default), in which case they won't be re-downloaded but read from
|
2022-04-03 21:47:33 +00:00
|
|
|
|
the local copy directly the next time they're requested.
|
|
|
|
|
|
|
|
|
|
To read older chat messages in a tab, just scroll up with `PageUp` and Poezio
|
|
|
|
|
will fetch more automatically if it needs to.
|
|
|
|
|
|
|
|
|
|
This is configurable with options that have been introduced such as
|
|
|
|
|
[`mam_sync`][mam_sync] or [`mam_sync_limit`][mam_sync_limit] to enable/disable
|
|
|
|
|
the use of [MAM][XEP-0313] and how many messages to fetch at most. And
|
|
|
|
|
[`use_log`][use_log] also configures the fact that archives are stored
|
|
|
|
|
locally.
|
|
|
|
|
|
|
|
|
|
Some work around storing message IDs -- that our log format doesn't do -- will
|
|
|
|
|
be needed in the future to allow for easier message deduplication.
|
|
|
|
|
|
2022-04-01 22:38:18 +00:00
|
|
|
|
# End-to-End Encryption
|
2022-03-31 18:49:18 +00:00
|
|
|
|
|
2022-04-01 22:38:18 +00:00
|
|
|
|
The Poezio `E2EEPlugin` API has been improved to accommodate changes in
|
2022-03-31 18:49:18 +00:00
|
|
|
|
poezio-omemo, slixmpp-omemo and changes of the OMEMO backend library. Two
|
|
|
|
|
plugins which are also seeing changes!
|
|
|
|
|
|
|
|
|
|
Heartbeats are now supported. Heartbeats are meta-messages which transfer only
|
|
|
|
|
cryptographic key material (nothing else) and are used to strengthen OMEMO's
|
|
|
|
|
forward secrecy. This is particularly relevant on clients like Poezio that can
|
|
|
|
|
stay running in the back for some time, receiving messages without replying.
|
|
|
|
|
|
|
|
|
|
Some other changes include colored fingerprints using the [Consistent Color
|
|
|
|
|
Generation][XEP-0392] document -- such as specified in the current (0.8)
|
2022-04-01 22:38:18 +00:00
|
|
|
|
[OMEMO][XEP-0384] spec -- and sending encrypted media (aesgcm URIs).
|
2022-03-31 18:49:18 +00:00
|
|
|
|
|
|
|
|
|
What hasn't changed is that this plugin lacks a UI and trust management.
|
2022-03-31 23:32:28 +00:00
|
|
|
|
Hopefully this should come soon, with a little motivation to do UI work.
|
2022-03-31 18:49:18 +00:00
|
|
|
|
|
|
|
|
|
# What comes next
|
|
|
|
|
|
|
|
|
|
All in all, there aren't (m)any revolutionary changes, but with these releases
|
2022-03-31 23:32:28 +00:00
|
|
|
|
come many fixes for paper cuts that hopefully make users happier. This makes
|
|
|
|
|
me think that even though Poezio is far from being perfect, there doesn't seem
|
|
|
|
|
to be many important things missing.
|
2022-03-31 18:49:18 +00:00
|
|
|
|
|
2022-03-31 23:32:28 +00:00
|
|
|
|
There are however changes that would require a lot of refactoring, such as a
|
2022-04-01 22:38:18 +00:00
|
|
|
|
multi-account feature, or easier maintenance in general.
|
2022-03-31 18:49:18 +00:00
|
|
|
|
|
|
|
|
|
We have decided to start migrating Poezio to Rust, in part to be able to
|
2022-03-31 23:53:51 +00:00
|
|
|
|
refactor the project more easily, and also because it's a language we've come
|
|
|
|
|
to appreciate over the years with experience in other projects, and more
|
2022-03-31 23:55:41 +00:00
|
|
|
|
specifically with [xmpp-rs][xmpp-rs], an XMPP library in Rust.
|
2022-03-31 18:49:18 +00:00
|
|
|
|
|
|
|
|
|
All of this will happen right after the release, and we invite interested
|
|
|
|
|
people to join the effort!
|
|
|
|
|
|
2022-04-10 15:59:28 +00:00
|
|
|
|
P.S.: I am looking for poezio screenshots with various setups to display in
|
|
|
|
|
public places, under a free license. Please send me your screenshots in
|
|
|
|
|
relatively high quality at `blog` `at` `bouah.net`. And don't forget to ask
|
|
|
|
|
pixels appearing on the image for permission!
|
|
|
|
|
|
2022-03-31 18:49:18 +00:00
|
|
|
|
[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
|
2022-04-01 00:00:56 +00:00
|
|
|
|
[xmpp-rs]: https://xmpp.rs
|
2022-03-31 18:49:18 +00:00
|
|
|
|
|
|
|
|
|
[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
|
|
|
|
|
|
2022-04-01 22:38:18 +00:00
|
|
|
|
[GPL]: https://en.wikipedia.org/wiki/GNU_General_Public_License
|
|
|
|
|
|
2022-03-31 23:32:28 +00:00
|
|
|
|
[XEP-0313]: https://xmpp.org/extensions/xep-0313.html
|
2022-03-31 18:49:18 +00:00
|
|
|
|
[XEP-0384]: https://xmpp.org/extensions/xep-0384.html
|
|
|
|
|
[XEP-0392]: https://xmpp.org/extensions/xep-0392.html
|
2022-04-03 21:47:33 +00:00
|
|
|
|
|
|
|
|
|
[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
|
2022-04-06 16:49:39 +00:00
|
|
|
|
[autocolor_tab_names]: https://doc.poez.io/configuration.html#term-autocolor_tab_names
|