tag:linuxfr.org,2005:/users/mathieuiLinuxFr.org : les contenus de mathieui2021-02-03T23:17:23+01:00/favicon.pngtag:linuxfr.org,2005:Diary/395492021-01-09T19:36:22+01:002021-01-10T21:33:41+01:00XMPP en 2021Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<ul>
<li><a href="#toc-multim%C3%A9dia">Multimédia</a></li>
<li><a href="#toc-le-multi-plateformes">Le multi-plateformes</a></li>
<li><a href="#toc-chiffrement">Chiffrement</a></li>
<li><a href="#toc-marketing">Marketing</a></li>
<li><a href="#toc-attractivit%C3%A9">Attractivité</a></li>
<li><a href="#toc-c%C3%B4t%C3%A9-administration">Côté administration</a></li>
<li><a href="#toc-passerelles">Passerelles</a></li>
<li><a href="#toc-%C3%80-venir">À venir</a></li>
</ul>
</li>
</ul>
<p>Salut nal,</p>
<p>Je profite de l’occasion de <a href="//linuxfr.org/users/groumph/journaux/whatsapp-et-facebook-quels-sont-mes-droits">Whatsapp qui va bientôt tout partager à Facebook</a> pour écrire ce petit journal sur XMPP, l’état des lieux, et ce qui est à venir pour 2021.</p>
<p>Tout d’abord je me présente, j’utilise XMPP depuis plus de 10 ans, je développe des trucs liés à XMPP depuis environ 10 ans (je suis notamment un des développeurs de <a href="https://poez.io">Poezio</a> et de <a href="https://slixmpp.readthedocs.org">Slixmpp</a>), et je suis également un des administrateurs du serveur <a href="https://jabberfr.org">JabberFR</a>.</p>
<h3 id="toc-multimédia">Multimédia</h3>
<p>Ça fait un bon paquet d’années qu’on peut partager des fichiers, quelques-unes de moins pour que ça marche à tous les coups (<a href="https://xmpp.org/extensions/xep-0363.html">XEP-0363</a>: Envoi de fichiers via HTTP). C’est maintenant pris en charge dans virtuellement tous les clients (non, Pidgin ne compte pas).</p>
<p>Un peu de la même façon, on peut théoriquement passer des appels audio/vidéo via XMPP depuis belle lurette, mais en pratique ça n’aboutissait pas trop, la faute à beaucoup de facteurs différents. Et puis depuis le milieu de l’année dernière environ, on peut passer des appels audio et vidéo depuis l’application Conversations, ainsi que Movim ou Siskin.</p>
<p>Les discussions en audio/vidéo font d’ailleurs partie des <a href="https://xmpp.org/extensions/xep-0443.html">Compliance Suites 2021 (XEP-0443)</a> qui servent de feuille de route aux développeurs pour savoir quoi implémenter.</p>
<p>À noter que la solution libre de visioconférence <a href="https://meet.jit.si">Jitsi Meet</a> se base aussi sur XMPP, mais n’est pour l’instant pas compatible avec d’autres clients (une conversation multimédia à plus de 2 personnes est toujours complexe à mettre en place).</p>
<h3 id="toc-le-multi-plateformes">Le multi-plateformes</h3>
<p>Des clients prenant en charge toutes les fonctionnalités majeures sont disponibles sur chaque plate-forme. L’exception notable est iOS, qui empêche toute utilisation en arrière-plan de TCP, ce qui n’incite pas tellement les développeurs à viser cette plate-forme pour un client XMPP. Mais les choses bougent, notamment avec les clients <a href="https://monal.im/">Monal</a> ou <a href="https://siskin.im/">Siskin</a> qui, s’ils n’ont pas atteint la maturité de <a href="https://conversations.im">Conversations</a>, reçoivent un développement actif.</p>
<p>Si je devais recommander des clients par plate-forme majeure :</p>
<ul>
<li>Linux : <a href="https://dino.im">Dino</a>, ou <a href="https://gajim.org">Gajim</a>
</li>
<li>Windows : <a href="https://gajim.org">Gajim</a>
</li>
<li>Android : <a href="https://conversations.im">Conversations</a>
</li>
<li>iOS : <a href="https://siskin.im">Siskin</a>, Snikket iOS (voir plus bas) recherche par ailleurs des beta-testeurs capables de fournir des rapports de bug en anglais</li>
<li>Mac OS : <a href="https://beagle.im">Beagle IM</a>
</li>
<li>Web (mais aussi n’importe quelle plateforme) : <a href="https://movim.eu">Movim</a>
</li>
<li>Interface terminal : <a href="https://poez.io">Poezio</a> (un certain conflit d’intérêts sur cette dernière entrée)</li>
</ul>
<p>À titre personnel, j’utilise quasi exclusivement Poezio et Conversations, et de temps en temps Dino.</p>
<h3 id="toc-chiffrement">Chiffrement</h3>
<p>Depuis 2014, année où la communauté <a href="https://github.com/stpeter/manifesto/blob/master/manifesto.txt">a décidé</a> de se débarasser de GMail qui empêchait de forcer l’utilisation de TLS en toutes circonstances, toutes les interactions XMPP sont chiffrées point-à-point (c’est-à-dire que la communication est chiffrée via TLS entre tous les acteurs du réseau).</p>
<p>Très tôt, XMPP a mis en place une forme de chiffrement bout-en-bout (communément appelé E2EE), par exemple avec la <a href="https://xmpp.org/extensions/xep-0027.html">XEP-0027</a> qui utilise OpenPGP (attention, cette extension est actuellement obsolète, c’était juste un exemple). <a href="https://otr.cypherpunks.ca/">OTR</a>, étant indépendant de la couche de transport, a toujours pu fonctionner également.</p>
<p>Mais depuis une petite quinzaine d’années, les choses évoluent (par exemple avec l’existence de smartphones), et dans ce contexte OTR dans sa version 3 n’était plus suffisant, tout comme l’extension définissant l’utilisation de GPG. Sont donc arrivées les extensions <a href="https://xmpp.org/extensions/xep-0384.html">XEP-0384</a>: OMEMO, et <a href="https://xmpp.org/extensions/xep-0374.html">XEP-0374</a>: OpenPGP pour la messagerie XMPP (OX).</p>
<p>La grande majorité des clients activement développés implémentent désormais OMEMO, et certains implémentent également OX (comme Gajim). Ces deux modes de chiffrement n’ont pas du tout les mêmes propriétés cryptographiques, et sont donc destinées à des publics différents.</p>
<h3 id="toc-marketing">Marketing</h3>
<p>XMPP (pour eXtensible Messaging and Presence Protocol) n’est pas tout à fait agréable à entendre pour les non-habitués, c’est pourquoi il existe une initiative menée par plusieurs personnes de la communauté, appelée <a href="https://snikket.org/">Snikket</a>. Le but de Snikket est de mettre « sous le tapis » toute mention à XMPP et de mettre en avant la fédération, en incitant à monter des serveurs nécessitant des invitations, mais fédérés, pour une famille ou une communauté. Ils proposent également un service d’hébergement (payant) de serveurs Snikket, actuellement en beta limitée.</p>
<p>Le but final (l’initiative est jeune) étant de fournir à la fois un package clef en main aux administrateurs pour pouvoir installer et gérer leur serveur XMPP (basé sur <a href="https://prosody.im">Prosody</a>) et les services qui en dépendant, mais également des applications unifiées pour toutes les plate-formes, ce qui manque cruellement aujourd’hui. L’application Android est déjà disponible et se base logiquement sur Conversations, l’application iOS est prévue pour cette année et <a href="https://github.com/snikket-im/snikket-ios">se basera sur Siskin</a>.</p>
<p>Le projet Snikket a notamment réussi à obtenir une donation pour financer le développement du chiffrement de groupes de discussions dans Siskin.</p>
<p>P. S. : Si vous avez un domaine et que vous voulez un service XMPP dessus sans pour autant le faire tourner vous-mêmes, à <a href="https://jabberfr.org/h%C3%A9bergement/">JabberFR</a> on propose également ce genre de services, il nous suffit d’une demande et d’un CNAME qui pointe vers nous (mais merci de nous prévenir si vous décidez de le retirer, parce que ça fait foirer nos renouvellements letsencrypt après).</p>
<h3 id="toc-attractivité">Attractivité</h3>
<p>À cause de l’<a href="https://fr.wikipedia.org/wiki/Effet_de_r%C3%A9seau">effet de réseau</a>, il est toujours difficile de faire venir de nouveaux utilisateurs sur des réseaux alternatifs aux monopoles des GAFAM. Une des façons de simplifier la transition pour les utilisateurs qui n’ont pas un bagage technique suffisant pour pouvoir choisir un nom d’utilisateur, un mot de passe, ou un serveur (pour un réseau fédéré), est de leur proposer une première expérience qui ressemble à ce qu’ils connaissent en termes d’inscription.</p>
<p><a href="https://gultsch.de/">Daniel Gultsch</a>, l’auteur de Conversations, a donc développé <a href="https://quicksy.im">Quicksy</a>, un fork de Conversations qui ne propose plus le traditionnel choix "nom d’utilisateur/serveur/mot de passe". À la place il crée un compte sur <a href="https://quicksy.im">quicksy.im</a> en utilisant le numéro de téléphone et une validation SMS.</p>
<p>Contrairement à Conversations, Quicksy est gratuit sur le Play Store, et le modèle de rémunération se base sur l’annuaire interne de quicksy.im. En effet, une des idées de Quicksy est d’utiliser la liste de contacts pour découvrir d’autres utilisateurs de Quicksy (ou XMPP) et de les ajouter à la liste de contacts XMPP. Si on a un compte XMPP pré-existant et qu’on veut faire passer ses proches à Quicksy, il faut donc soit payer pour lier son numéro de téléphone à son adresse dans l’annuaire, soit faire soi-même les demandes d’ajout de contact. Bien entendu, les utilisateurs de Quicksy eux-mêmes n’ont pas besoin de payer pour être ajoutés à l’annuaire.</p>
<p>Quicksy étant un fork de Conversations maintenu par le même auteur, il a exactement les mêmes fonctionnalités, comme les appels audio/vidéo, le chiffrement OMEMO ou le partage de fichiers.</p>
<h3 id="toc-côté-administration">Côté administration</h3>
<p>Historiquement, j’ai utilisé <a href="https://www.ejabberd.im/">ejabberd</a> quelques années avant de passer à Prosody pour des raisons de mémoire vive limitée, et depuis ça tourne. Rien à dire, l’entretien est vraiment minime, mais il faut penser à se tenir informé des nouveautés, par exemple la visio requiert en général un <a href="https://prosody.im/doc/coturn">serveur STUN/TURN</a>, certaines extensions modernes ont besoin de nouveaux plugins, etc…</p>
<p>À noter les modules "<a href="https://modules.prosody.im/type_measure.html">mod_measure_</a>" pour Prosody qui ne sont pas si vieux qui permettent de facilement remonter des informations à <a href="https://prometheus.io">Prometheus</a>, comme on le fait sur <a href="https://stats.jabberfr.org">JabberFR</a>.</p>
<h3 id="toc-passerelles">Passerelles</h3>
<p>J’utilise une seule passerelle, <a href="https://biboumi.louiz.org/">Biboumi</a>, afin de me connecter à IRC de façon entièrement transparente, avec un bouncer et un historique intégré à mon client XMPP (avec la <a href="https://xmpp.org/extensions/xep-0313.html">XEP-0313</a>: Gestion de l’archivage des messages). La dernière version a rajouté la prise en charge de SASL, qui était la seule chose qui me pénalisait un peu.</p>
<p>Je n’en utilise pas d’autres, mais je sais que beaucoup fonctionnent via <a href="https://spectrum.im/">Spectrum</a>, et j’ai connaissance de <a href="https://git.theta.eu.org/eta/whatsxmpp">celle-ci</a> pour Whatsapp.</p>
<h3 id="toc-À-venir">À venir</h3>
<ul>
<li>Gajim vient de sortir une version <a href="https://gajim.org/fr/post/2021-01-01-gajim-1.3.0-beta-released/">1.3 beta</a> avec un nombre significatif d’amélioration pour l’expérience utilisateur et la stabilité</li>
<li>Beaucoup d’extensions intéressantes ont été publiées l’an dernier et sont en cours d’implémentation ou déjà implémentées dans des clients (lire à ce sujet les excellentes dépêches de la Lettre d’informations XMPP mensuelle) :
<ul>
<li>Les stickers</li>
<li>Les réactions (emojis) à des messages</li>
<li>L’effacement de messages qu’on envoie</li>
<li>La modération avec suppression de messages (sur des groupes de discussion)</li>
<li>Une interface simplifiée pour les interactions avec les bots</li>
</ul>
</li>
</ul>
<p>Et bien d’autres choses encore, certaines un peu trop techniques qui rendraient ce journal encore plus long, d’autres plus mineures, mais on peut en discuter dans les commentaires bien sûr !</p>
<div><a href="https://linuxfr.org/users/mathieui/journaux/xmpp-en-2021.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/122879/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/mathieui/journaux/xmpp-en-2021#comments">ouvrir dans le navigateur</a>
</p>
mathieuihttps://linuxfr.org/nodes/122879/comments.atomtag:linuxfr.org,2005:News/375952016-10-11T22:42:20+02:002016-10-18T14:00:31+02:00Sortie de poezio 0.10Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Pour rappel, <em>poezio</em> est un client XMPP en ligne de commande. La version 0.10 est sortie le 9 octobre 2016. Les nouveautés de ce nouvel opus sont présentées dans la seconde partie de la dépêche.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f706f657a2e696f2f696d672f6c6f676f2e706e67/logo.png" alt="Logo Poezio" title="Source : https://poez.io/img/logo.png"></p></div><ul><li>lien nᵒ 1 : <a title="https://blog.mathieui.net/poezio-0-10-fr.html" hreflang="fr" href="https://linuxfr.org/redirect/98335">Article de blog : « Poezio 0.10 »</a></li><li>lien nᵒ 2 : <a title="https://poez.io" hreflang="fr" href="https://linuxfr.org/redirect/98336">Site de Poezio</a></li><li>lien nᵒ 3 : <a title="https://dev.louiz.org/projects/poezio/files" hreflang="en" href="https://linuxfr.org/redirect/98340">Téléchargements</a></li><li>lien nᵒ 4 : <a title="https://doc.poez.io" hreflang="en" href="https://linuxfr.org/redirect/98341">Documentation</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#nouveaut%C3%A9s">Nouveautés</a><ul>
<li><a href="#performances">Performances</a></li>
<li><a href="#stream-management-xep-0198">Stream Management (XEP-0198)</a></li>
<li><a href="#activation-de-copies-carbones">Activation de copies carbones</a></li>
<li><a href="#fichier-de-configuration-comment%C3%A9">Fichier de configuration commenté</a></li>
<li><a href="#script-poezio_logs">Script poezio_logs</a></li>
<li><a href="#v%C3%A9rification-http-xep-0070">Vérification HTTP (XEP-0070)</a></li>
<li><a href="#changement-de-lavertissement-de-certificat">Changement de l’avertissement de certificat</a></li>
<li><a href="#d%C3%A9tournement-des-corrections-de-messages">Détournement des corrections de messages</a></li>
<li><a href="#indication-de-l%C3%A9tat-du-client-csi-xep-0352">Indication de l’état du client (CSI, XEP-0352)</a></li>
<li><a href="#vcards">VCards</a></li>
<li><a href="#bits-of-binary">Bits of Binary</a></li>
<li><a href="#et-bien-plus-encore">Et bien plus encore</a></li>
</ul>
</li>
<li><a href="#informations-dempaquetage">Informations d’empaquetage</a></li>
<li><a href="#contributeurs">Contributeurs</a></li>
<li><a href="#bogues">Bogues</a></li>
<li><a href="#pour-la-suite">Pour la suite…</a></li>
</ul><h2 id="nouveautés">Nouveautés</h2>
<h3 id="performances">Performances</h3>
<p><a href="//linuxfr.org/users/linkmauve"><em>Link Mauve</em></a> a passé pas mal de temps à rendre poezio plus rapide, ce qui le rend plus agréable et plus réactif sur des machines avec une puissance de calcul faible dans une situation avec beaucoup de contacts et de salons remplis.</p>
<p>Il a ainsi passé beaucoup de temps à profiler poezio pour déterminer les endroits critiques pour les performances, ainsi qu’à se plaindre de la lenteur de Python pour des opérations des plus classiques ; ensuite est venu un nombre de micro‐optimisations (et pas si micro que ça). Son objectif à terme est de rendre tout compilable via <a href="http://cython.org">Cython</a>, afin d’avoir des performances encore meilleures.</p>
<h3 id="stream-management-xep-0198">Stream Management (XEP-0198)</h3>
<p>Allant de pair avec la réparation du greffon <a href="https://blog.louiz.org/slixmpp"><em>slixmpp</em></a> pour la <a href="https://xmpp.org/extensions/xep-0198.html">XEP-0198</a> est venue l’implémentation dans poezio. Il n’est néanmoins pas activé par défaut, car il ajoute une quantité substantielle d’échanges avec le serveur et n’est pas foncièrement utile dans les cas standard d’utilisation de poezio (<em>i.e.</em> des sessions longues laissées à tourner dans une fenêtre <em>screen</em> ou <em>tmux</em>). Il suffit de mettre l’option idoine à <code>true</code> pour le réactiver.</p>
<p>Cette extension (qui a besoin d’une prise en charge côté serveur) permet à un client de restaurer une session après une déconnexion abrupte, tant qu’un certain délai n’est pas dépassé côté serveur. Elle permet également d’avoir une meilleure fiabilité dans le flux entre le client et le serveur en ayant des accusés de réception à intervalle régulier avec des numéros de séquence. Si les numéros de chaque côté ne correspondent pas, l’entité qui a envoyé les messages manquants les renvoie simplement à l’autre.</p>
<h3 id="activation-de-copies-carbones">Activation de copies carbones</h3>
<p>C’était un oubli, mais un oubli notable ; l’extension <em>Carbon Copies</em> (<a href="https://xmpp.org/extensions/xep-0280.html">XEP-0280</a>) est maintenant activée par défaut dans poezio 0.10. Cette extension permet une transition naturelle entre différents terminaux XMPP en dupliquant les messages reçus et envoyés sur chaque terminal. On peut donc continuer sur son ordinateur une conversion entamée sur son téléphone en voyant tous les messages.</p>
<h3 id="fichier-de-configuration-commenté">Fichier de configuration commenté</h3>
<p>Encore un oubli : comme les options du fichier de configuration étaient décommentées par défaut (et que ce fichier est copié au premier lancement de poezio), il n’y avait aucun moyen de savoir si une valeur était là parce que l’utilisateur le désirait, ou si c’était juste la valeur par défaut. Il n’y avait donc pas de possibilité de changer les valeurs par défaut dans les nouvelles versions pour les gens utilisant déjà poezio. En fait, il n’y en a toujours pas, mais dorénavant les options du fichier de configuration sont toutes commentées par défaut, donc les nouveaux utilisateurs n’auront pas ce problème.</p>
<p>P.‐S. : Il est possible d’utiliser <code>poezio -c</code> pour voir quelles options diffèrent de leurs valeurs par défaut.</p>
<h3 id="script-poezio_logs">Script poezio_logs</h3>
<p>Les fichiers journaux de poezio sont depuis un moment déjà dans un format proche de <a href="http://mcabber.com/"><em>mcabber</em></a>. Cependant, lire ces journaux depuis poezio est au mieux compliqué, mais surtout impossible. Même si ce problème est connu et voué à être résolu un jour, c’est toujours appréciable de pouvoir lire ses journaux sans avoir à se coltiner le format spécifique de stockage.</p>
<p>Cette version inclut donc un outil <em>poezio_logs</em> qui reçoit en paramètre le chemin d’un fichier journal et sort le résultat nettoyé sur la sortie standard, avec quelques couleurs. Il peut également prendre quelques paramètres pour enlever la couleur, la date et l’heure, ou les messages d’information.</p>
<h3 id="vérification-http-xep-0070">Vérification HTTP (XEP-0070)</h3>
<p>L’invité surprise de cette nouvelle version est l’arrivée d’un onglet de vérification de requêtes HTTP utilisant la <a href="https://xmpp.org/extensions/xep-0070.html">XEP-0070</a> pour authentifier des requêtes HTTP en utilisant seulement votre JID.<br><img src="//img.linuxfr.org/img/68747470733a2f2f626c6f672e6d617468696575692e6e65742f696d616765732f687474705f76657269662e706e67/http_verif.png" alt="Vérification de requête HTTP" title="Source : https://blog.mathieui.net/images/http_verif.png"></p>
<p>Un greffon MediaWiki est en cours d’écriture afin de tirer parti de cette extension, et un greffon WordPress est déjà disponible depuis un bon moment. Comme les composants dont <a href="https://git.kingpenguin.tk/chteufleur/HTTPAuthentificationOverXMPP">celui de <em>Chtefleur</em></a> (décrit plus en détail <a href="//linuxfr.org/news/authentifiez-vous-sans-mot-de-passe-grace-a-xmpp"><em>ici</em></a>) parlent en HTTP, aucune prise en charge de XMPP n’est requise dans l’application qui fait la vérification ; il suffit d’entrer votre JID, puis de vérifier et accepter la requête dans votre client.</p>
<h3 id="changement-de-lavertissement-de-certificat">Changement de l’avertissement de certificat</h3>
<p>La façon qu’avait poezio d’afficher un changement de certificat auparavant n’était vraiment pas pratique et, après avoir implémenté la XEP-0070, c’était naturel de réutiliser l’onglet créé pour l’occasion avec des couleurs différentes pour avoir une façon plus agréable de vérifier le nouveau certificat (particulièrement depuis le passage de <a href="https://fr.wikipedia.org/wiki/SHA-1">SHA-1</a> vers <a href="https://fr.wikipedia.org/wiki/SHA-2">SHA-512</a>).<br><img src="//img.linuxfr.org/img/68747470733a2f2f626c6f672e6d617468696575692e6e65742f696d616765732f636572745f7761726e696e672e706e67/cert_warning.png" alt="Validation de certificat" title="Source : https://blog.mathieui.net/images/cert_warning.png"></p>
<h3 id="détournement-des-corrections-de-messages">Détournement des corrections de messages</h3>
<p>Cela s’apparente plus à de l’abus de protocole qu’autre chose, mais puisque nous avons déjà un nombre conséquent de greffons « rigolos », en voici deux nouveaux qui exploitent la possibilité de correction de message offerte par la <a href="https://xmpp.org/extensions/xep-0308.html">XEP-0308</a> :</p>
<ul>
<li>
<a href="https://doc.poez.io/plugins/marquee.html#marquee-plugin"><em>marquee</em></a>, qui reproduit le comportement d’une balise HTML <a href="https://developer.mozilla.org/fr/docs/Web/HTML/Element/marquee"><code><marquee></code></a> en déplaçant du texte de gauche à droite dans une boucle, tout ça dans un seul message, en utilisant les corrections ;</li>
<li>
<a href="https://doc.poez.io/plugins/dice.html#dice-plugin"><em>dice</em></a>, pour faire « rouler » un certain nombre de dés durant une durée fixe, une fois de plus dans un seul message, en utilisant les corrections.</li>
</ul><h3 id="indication-de-létat-du-client-csi-xep-0352">Indication de l’état du client (CSI, XEP-0352)</h3>
<p><a href="https://xmpp.org/extensions/xep-0352.html">CSI</a> est une extension plutôt portée sur le mobile qui demande une prise en charge côté client et côté serveur, et qui permet au client de dire au serveur qu’il est « <em>off</em> » (par exemple, un client mobile avec l’écran éteint en étant dans une poche).</p>
<p>Étonnamment, cette extension s’applique plutôt bien à poezio, puisque le greffon <a href="https://doc.poez.io/plugins/screen_detach.html#screendetach-plugin"><em>screen_detach</em></a> fait exactement ça, en ayant un état « <em>off</em> » et un état « <em>on</em> ».</p>
<p>Régler l’état à actif ou inactif permet au serveur d’activer un certain nombre de filtres pour limiter les échanges entre le client et le serveur (et donc les réveils du téléphone en cas d’information inutile). Par exemple, quand l’écran est éteint, le client n’a que faire des informations de présence des contacts, qui seront donc filtrées, alors qu’il est encore intéressé par des nouveaux messages.</p>
<p>Les filtres activés sont à la discrétion de l’administrateur du serveur.</p>
<h3 id="vcards">VCards</h3>
<p>Prendre en charge <em>VCard-Temp</em> (<a href="https://xmpp.org/extensions/xep-0054.html">XEP-0054</a>), qui permet de récolter des informations sur son interlocuteur, est toujours appréciable, et cette version ajoute un greffon pour visualiser les informations fournies par une entité distante. L’implémentation est encore un peu brute, car elle n’implémente qu’une partie de la spécification et réutilise un onglet de poezio qui n’était pas fondamentalement prévu pour ça, mais cela s’améliorera.</p>
<p>Bien sûr, une fois que la prise en charge de <em>vcard-temp</em> sera finalisée, celle de VCard 4 (<a href="https://xmpp.org/extensions/xep-0292.html">XEP-0292</a>), qui est plus actuelle et pratique, viendra.</p>
<h3 id="bits-of-binary">Bits of Binary</h3>
<p>Bien que poezio ne dispose toujours pas de vraies capacités de partage de fichiers, nous avons désormais un greffon <em>BoB</em> (<a href="https://xmpp.org/extensions/xep-0231.html">XEP-0231</a>), qui permet d’envoyer des petits fichiers à travers la connexion XMPP. Comme la bande passante est souvent limitée à raison à quelques kilobits/octets par seconde, il doit être utilisé avec raison, mais est pratique pour envoyer de petits fichiers.</p>
<h3 id="et-bien-plus-encore">Et bien plus encore</h3>
<p>Il y a bien sûr bien plus de <em>commits</em> que juste ceux‐ci, par exemple l’intégralité du code a été refactorisée pour éviter une bidouille du chemin Python durant l’importation, plusieurs corrections d’interface ont été apportées, les thèmes graphiques sont mieux respectés (moins de valeurs en dur), les reconnexions dans certaines conditions ne provoquent plus une boucle infinie sans pause, etc. Vous pouvez consulter le <a href="https://git.poez.io/poezio/tree/CHANGELOG?id=eefc126a0b0bc25af283c9e4aef56225d3b87a58">journal des modifications</a> ou l’<a href="https://git.poez.io/poezio/log/">historique Git</a> pour plus de raisons de mettre à jour.</p>
<h2 id="informations-dempaquetage">Informations d’empaquetage</h2>
<p>Cette version comme <a href="//linuxfr.org/news/sortie-de-poezio-0-9">la précédente</a> dépend toujours de la bibliothèque <a href="https://git.poez.io/slixmpp"><em>slixmpp</em></a> qui, elle‐même, requiert <a href="https://github.com/saghul/aiodns"><em>aiodns</em></a>, et peut être optimisée avec <a href="https://fr.wikipedia.org/wiki/Cython">Cython</a> (auquel cas <a href="http://gnu.org/software/libidn"><em>libidn</em></a> ainsi que ses en-têtes seront requis durant la compilation).</p>
<h2 id="contributeurs">Contributeurs</h2>
<p>À part les habitués que sont <a href="https://mathieui.net"><em>mathieui</em></a>, <a href="https://louiz.org"><em>louiz’</em></a> et <a href="https://linkmauve.fr"><em>Link Mauve</em></a>, il faut également saluer les autres contributeurs, <a href="https://bananium.fr"><em>eijebong</em></a>, Lasse Aagren, Frédéric Meynadier, Nicolas Braud‐Santoni, <em>Lancelot SIX</em> et Luke Marlin, pour leurs ajouts de fonctionnalités ou corrections de bogues.</p>
<p>Merci également à tous les utilisateurs et testeurs qui nous remontent des bogues et des suggestions d’améliorations, que ce soit via des remarques constructives dans le <a href="xmpp:poezio@muc.poez.io?join">salon</a> ou des <a href="https://dev.poez.io/new">rapports de bogues</a>.</p>
<h2 id="bogues">Bogues</h2>
<p>Comme toujours, si vous rencontrez un bogue inconnu qui n’est pas corrigé dans la version Git de <em>poezio</em>, merci de nous en <a href="https://dev.poez.io/new">faire part</a>, merci.</p>
<h2 id="pour-la-suite">Pour la suite…</h2>
<p>Pour la prochaine versions, les développeurs vont sans doute se pencher sur des fonctionnalités très réclamées telles qu’<a href="https://xmpp.org/extensions/inbox/omemo.html">OMEMO</a> l’extension de chiffrement de bout en bout qui correspond à une adaptation du protocole dit « <a href="https://en.wikipedia.org/wiki/Double_ratchet">double ratchet</a> » pour XMPP, ainsi que le « nouveau » protocole d’archivage <a href="https://xmpp.org/extensions/xep-0313.html">MAM</a> (pour <em>Message Archive Management</em>).</p></div><div><a href="https://linuxfr.org/news/sortie-de-poezio-0-10.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/110252/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-poezio-0-10#comments">ouvrir dans le navigateur</a>
</p>
mathieuiDavy DefaudM5oulBenoît Sibaudpalm123https://linuxfr.org/nodes/110252/comments.atomtag:linuxfr.org,2005:News/366142015-08-02T00:38:56+02:002015-08-02T00:38:56+02:00Sortie de poezio 0.9Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Poezio est un client de messagerie instantanée en console (licence zlib) pour le réseau XMPP (Jabber) (pour plus de détails, voir la <a href="//linuxfr.org/tags/parlons_xmpp/public">série de très bons journaux</a> rédigés par goffi qui vont en détail dans le protocole et ce qu’il permet d’accomplir).</p>
<p>Poezio est conçu pour être rapide à utiliser au quotidien, avec une utilisation se rapprochant des clients IRC bien connus comme weechat et irssi. Dans cet esprit, il est avant tout conçu pour les salons de discussions (MUC) et ne gérait même pas la connexion à un compte (on peut maintenant en avoir un) dans les premières versions, dans l’idée d’avoir le même genre de client qui ne nécessite pas de configuration préalable.</p>
<p>Poezio offre néanmoins un certain nombre de fonctionnalités avancées liées à XMPP, comme la correction de messages, les accusés de réception, les <em>message carbons</em> (duplication de messages vers tous les périphériques), le formatage xhtml-im, une interface de debug XML complète, et bien plus encore. Un certain nombre de compromis sont malheureusement réalisés du fait de l’interface en <em>ncurses</em> qui limite un peu les options niveau interface utilisateur.</p>
<p>Du point de vue de la sécurité, poezio force le chiffrement avec le serveur en utilisant des ciphers corrects (l’utilisateur peut cependant désactiver le chiffrement ou réduire la qualité des ciphers), fait du <em>cert pinning</em> (via un hash du certificat à la première connexion, et un gros avertissement si ça change ensuite). Il intègre également un plugin GPG (que personne n’utilise) et OTR. </p>
<p>Côté technologie, poezio dépend généralement de la dernière version de python en date à chaque nouvelle release, ce qui est rarement du goût de debian stable.</p></div><ul><li>lien nᵒ 1 : <a title="http://linuxfr.org/users/mathieui/journaux/sortie-de-poezio-0-9" hreflang="fr" href="https://linuxfr.org/redirect/94705">Journal à l'origine de la dépêche</a></li><li>lien nᵒ 2 : <a title="http://poez.io" hreflang="en" href="https://linuxfr.org/redirect/94706">Site du projet</a></li><li>lien nᵒ 3 : <a title="http://blog.mathieui.net/poezio-0-9-fr.html" hreflang="fr" href="https://linuxfr.org/redirect/94707">Article original</a></li><li>lien nᵒ 4 : <a title="https://dev.louiz.org/projects/poezio/files" hreflang="fr" href="https://linuxfr.org/redirect/94708">Téléchargements (attention: certificat X.509 auto-signé)</a></li><li>lien nᵒ 5 : <a title="http://doc.poez.io/0.9/" hreflang="en" href="https://linuxfr.org/redirect/94709">Documentation</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#nouveaut%C3%A9s-de-poezio-09">Nouveautés de poezio 0.9</a><ul>
<li><a href="#python-34-et-slixmpp">Python 3.4 et slixmpp</a></li>
<li><a href="#greffon-otr-am%C3%A9lior%C3%A9">Greffon OTR amélioré</a></li>
<li><a href="#connexion-avec-des-certificats-clients">Connexion avec des certificats clients</a></li>
<li><a href="#commandes-ad-hoc">Commandes ad-hoc</a></li>
<li><a href="#couleurs-de-pseudo">Couleurs de pseudo</a></li>
<li><a href="#accus%C3%A9s-de-r%C3%A9ception">Accusés de réception</a></li>
<li><a href="#gestion-de-marque-pages">Gestion de marque-pages</a></li>
<li><a href="#performance">Performance</a></li>
<li><a href="#greffon-irc">Greffon IRC</a></li>
<li><a href="#reconnexion-aux-salons">Reconnexion aux salons</a></li>
<li><a href="#et-bien-plus-encore">Et bien plus encore</a></li>
<li><a href="#packaging">Packaging</a></li>
<li><a href="#contributeurs">Contributeurs</a></li>
<li><a href="#bugs">Bugs</a></li>
</ul>
</li>
</ul><h2 id="nouveautés-de-poezio-09">Nouveautés de poezio 0.9</h2>
<p>(NdM: l'auteur du journal mathieui est membre du projet et s'exprime à la première personne dans la suite.)</p>
<h3 id="python-34-et-slixmpp">Python 3.4 et slixmpp</h3>
<p>Une fois de plus, la version de python requise est incrémentée (pour 3.4).</p>
<p>Cette fois c’est parce que nous avons changé de bibliothèque XMPP pour <a href="http://blog.louiz.org/slixmpp">slixmpp</a>, qui est notre fork de SleekXMPP (bibliothèque utilisée auparavant), en y substituant le multithreading événementiel par asyncio. Pour comprendre les raisons de ce fork, référez-vous à l’article de louiz’ donné en lien ci-dessus. (pour résumer : un code plus lisible, pas de <em>race conditions</em>, plus de facilité à raisonner sur le code)</p>
<p>Cela ne veut pas dire pour autant qu’on se désolidarise complètement de SleekXMPP qui reste une excellente bibliothèque, puisque slixmpp partage toujours avec elle la majorité de son code sans modification. Nous pourrons donc appliquer des nouvelles fonctionnalités et corrections sans ou avec peu de modifications, et leur envoyer les nôtres en retour également.</p>
<h3 id="greffon-otr-amélioré">Greffon OTR amélioré</h3>
<p>Le <a href="http://doc.poez.io/0.9/plugins/otr.html">greffon OTR</a> qui avait été réécrit avec <a href="http://blog.mathieui.net/poezio-0-8-fr.html">poezio 0.8</a> manquait encore des fonctionnalités communément attendues dans un greffon de chiffrement, c’est maintenant corrigé.</p>
<p>La nouvelle fonctionnalité majeure est le Socialist Millionaire’s Protocol (SMP) qui permet à deux personnes de vérifier l’identité de leur correspondant respectif, à travers un secret partagé ou une question (auparavant il était possible de vérifier les identités, mais seulement en communiquant les empreintes de clefs sur un autre canal).</p>
<p>D’autres améliorations sont présentes comme un peu de traitement de HTML pour améliorer l’expérience utilisateur, et d’autres options de sécurité pour forcer le chiffrement et la négociation de session. </p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f626c6f672e6d617468696575692e6e65742f696d616765732f6f74725f6469616c6f672e706e67/otr_dialog.png" alt="OTR" title="Source : http://blog.mathieui.net/images/otr_dialog.png"></p>
<h3 id="connexion-avec-des-certificats-clients">Connexion avec des certificats clients</h3>
<p>Poezio permet désormais de se connecter sans mot de passe à son serveur en utilisant des certificats X.509 et un mécanisme décrit dans la <a href="http://xmpp.org/extensions/xep-0178.html">XEP-0178</a>, et également de gérer ces derniers à travers les fonctionnalités décrites dans la <a href="http://xmpp.org/extensions/xep-0257.html">XEP-0257</a>.<br>
Avec ces fonctionnalités vous pouvez, une fois connecté, ajouter, désactiver, lister ou supprimer ces certificats du serveur. <br>
Un <a href="https://code.google.com/p/prosody-modules/issues/detail?id=68">bug</a> dans le module prosody empêche malheureusement l’utilisation de la XEP-0257 pour l’ajout d’un certificat, mais on peut le patcher en attendant.</p>
<h3 id="commandes-ad-hoc">Commandes ad-hoc</h3>
<p>Les <a href="//linuxfr.org/usrs/goffi/journaux/parlons-xmpp-episode-6-les-commandes-a-distance">commandes ad-hoc</a> dans XMPP permettent à un humain d’interagir avec une entité sans qu’il existe de spécification précise quant à la nature de l’interaction (en dehors XEP-0050, justement). Par exemple, prosody permet avec le chargement du bon module de charger/décharger des modules, de déconnecter ou supprimer des utilisateurs, etc, juste avec des commandes ad-hoc.<br>
Dorénavant, poezio peut donc lister et exécuter ces commandes ad-hoc à travers une interface dédiée. </p>
<h3 id="couleurs-de-pseudo">Couleurs de pseudo</h3>
<p>Auparavant, les couleurs de pseudos étaient attribuées selon l’ordre d’entrée des participants dans le salon, ce qui était mémorisable en gardant poezio ouvert plusieurs mois, mais restait perturbant quand la même personne avait une couleur différente selon le salon dans laquelle elle était. <br>
À partir de maintenant, les pseudos seront hashés avant d’être projetés sur la liste des couleurs disponibles, ce qui permet d’obtenir une distribution relativement uniforme, aléatoire, et surtout fixe des couleurs. Les gens qui utilisent le même pseudo partout devraient donc toujours garder la même couleur.<br>
Si vous préfériez l’ancien comportement (pour des raisons étranges sûrement valides), il existe toujours et peut être réactivé en changeant une option.</p>
<p>De plus, <a href="//linuxfr.org/users/perdu">Perdu</a> a ajouté une commande pour régler définitivement la couleur d’un pseudo, donc si vous trouvez qu’une couleur attribuée ne convient pas à quelqu’un, vous pouvez le modifier.</p>
<h3 id="accusés-de-réception">Accusés de réception</h3>
<p>Les messages envoyés par poezio demandent maintenant des accusés de réception, si le correspondant les prend en charge. Évidemment, poezio répond également aux demandes d’accusés de réception, ce qui devrait permettre aux clients mobiles plus de fiabilité.<br>
Ce comportement peut être personnalisé, mais il est activé par défaut. Si un accusé de réception est reçu pour un message envoyé, un caractère de validation en vert s’affichera à côté du message.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f626c6f672e6d617468696575692e6e65742f696d616765732f706f657a696f5f72656365697074732e706e67/poezio_receipts.png" alt="poezio receipts" title="Source : http://blog.mathieui.net/images/poezio_receipts.png"></p>
<h3 id="gestion-de-marque-pages">Gestion de marque-pages</h3>
<p>La commande <code>/bookmarks</code> permettait auparavant de lister tous les marque-pages connus, de façon un peu brute. Désormais cette commande ouvre un onglet vous permettant d’éditer les marque-pages, mots de passe, et de choisir l’emplacement de stockage ainsi que l’<em>autojoin</em> à l’ouverture du client.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f626c6f672e6d617468696575692e6e65742f696d616765732f706f657a696f5f626f6f6b6d61726b732e706e67/poezio_bookmarks.png" alt="poezio bookmarks" title="Source : http://blog.mathieui.net/images/poezio_bookmarks.png"></p>
<h3 id="performance">Performance</h3>
<p>Certains bouts de poezio étaient affreusement mal optimisés. Certains le sont certainement encore, mais quelques scénarios assez communs devraient être plus rapides de façon exponentielle (par exemple rejoindre un salon avec plusieurs milliers de participants). La lenteur est habituellement invisible dans les cas normaux (comme quelqu’un utilisant poezio sur un ordinateur construit après 2002 en ayant quelques tabs ouverts), mais ça devient plus problématique quand poezio tourne sur une carte ARMv7 à faible consommation avec plusieurs centaines de salons ouverts et un flux constant de nouveaux messages ou présences.</p>
<h3 id="greffon-irc">Greffon IRC</h3>
<p>louiz’ a écrit entre temps un composant IRC appelé <a href="http://biboumi.louiz.org">biboumi</a> (qui est pour moi la meilleure passerelle IRC disponible). Malheureusement, mélanger des onglets IRC et des MUC normaux est un peu perturbant, j’ai donc écrit un greffon IRC simpliste qui, une fois configuré correctement, gère l’authentification avec nickserv et la connexion aux salons ensuite, ainsi que des commandes préfixées par <code>irc_</code> pour plus de fluidité dans un fonctionnement normal. Le fonctionnement interne est un hack, mais ça reste bien plus agréable que de tout faire soi-même à chaque fois.</p>
<h3 id="reconnexion-aux-salons">Reconnexion aux salons</h3>
<p>Le problème quand une connexion timeout ou qu’un serveur redémarre est que vous pouvez ne jamais être prévenu que vous n’êtes en fait plus dans le salon avant que vous n’essayiez d’envoyer un message ou une présence et que ce dernier vous réponde par une erreur. Cette nouvelle version introduit un mécanisme appelé le <code>self-ping</code> qui, une fois activé (et éventuellement configuré plus finement), fera en sorte que poezio s’envoie un ping à travers chaque salon au bout d’un certain temps d’inactivité. Si le salon lui reçoit par une erreur, il va quitter le salon (afin d’être certain de ne plus y être) puis y revenir. <br>
Cela devrait permettre de ne plus découvrir le matin que l’on a été déconnecté de tous les salons juste après avoir été se coucher parce qu’un serveur a redémarré quelque part.</p>
<h3 id="et-bien-plus-encore">Et bien plus encore</h3>
<p>Bien évidemment, il y a plus de commits que ça (plus de 500), que ce soit pour des nouvelles fonctionnalités ou des corrections de bugs. Par exemple, des améliorations de la commande /set, une refonte de l’onglet de debug XML, une commande de destruction de salon, le passage au SHA-2 pour la vérification du certificat, etc…<br>
Vous pouvez regarder le <a href="http://git.poez.io/poezio/tree/CHANGELOG?id=682074303330254ae1a349a7f3a337122de4fe30">CHANGELOG</a> ou <a href="https://dev.louiz.org/projects/poezio/repository/revisions">l’historique git</a> pour plus de nouveautés.</p>
<h3 id="packaging">Packaging</h3>
<p>Comme dit précédemment, poezio dépend maintenant de la bibliothèque slixmpp, cette dernière dépendant d’<a href="https://github.com/saghul/aiodns">aiodns</a>, ainsi qu’optionnellement de <a href="http://cython.org">cython</a> afin d’optimiser un module (et dans ce cas <a href="http://gnu.org/software/libidn">libidn</a> sera requis également, ainsi que ses en-têtes pendant la compilation).</p>
<h3 id="contributeurs">Contributeurs</h3>
<p>En dehors de moi (mathieui), <a href="http://louiz.org">louiz’</a>, et <a href="http://linkmauve.fr">Link Mauve</a>, je veux remercier les autres contributeurs <a href="http://ploudseeker.com">Perdu</a>, <a href="http://op-co.de">Ge0rG</a>, <a href="http://bananium.fr">eijebong</a>, Florian Duraffour et Akim Sadaoui pour leur apport en fonctionnalités et corrections.</p>
<h3 id="bugs">Bugs</h3>
<p>Comme toujours, si vous essayez la version et que vous remarquez un bug également non corrigé dans la version git, merci de le <a href="http://dev.poez.io/new">rapporter</a>.</p></div><div><a href="https://linuxfr.org/news/sortie-de-poezio-0-9.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/106421/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-poezio-0-9#comments">ouvrir dans le navigateur</a>
</p>
mathieuiBenoît Sibaudhttps://linuxfr.org/nodes/106421/comments.atomtag:linuxfr.org,2005:Diary/360162015-08-01T14:21:17+02:002015-08-01T14:21:17+02:00Sortie de poezio 0.9Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#pr%C3%A9sentation-de-poezio">Présentation de poezio</a></li>
<li>
<a href="#nouveaut%C3%A9s-de-poezio-09">Nouveautés de poezio 0.9</a><ul>
<li><a href="#python-34-et-slixmpp">Python 3.4 et slixmpp</a></li>
<li><a href="#plugin-otr-am%C3%A9lior%C3%A9">Plugin OTR amélioré</a></li>
<li><a href="#connexion-avec-des-certificats-clients">Connexion avec des certificats clients</a></li>
<li><a href="#commandes-ad-hoc">Commandes ad-hoc</a></li>
<li><a href="#couleurs-de-nick">Couleurs de nick</a></li>
<li><a href="#accus%C3%A9s-de-r%C3%A9ception">Accusés de réception</a></li>
<li><a href="#gestion-de-marque-pages">Gestion de marque-pages</a></li>
<li><a href="#performance">Performance</a></li>
<li><a href="#plugin-irc">Plugin IRC</a></li>
<li><a href="#reconnexion-aux-salons">Reconnexion aux salons</a></li>
<li><a href="#et-bien-plus-encore">Et bien plus encore</a></li>
<li><a href="#packaging">Packaging</a></li>
<li><a href="#contributeurs">Contributeurs</a></li>
<li><a href="#bugs">Bugs</a></li>
</ul>
</li>
<li><a href="#liens">Liens</a></li>
</ul><p>Comme je n'avais encore jamais fait de journal à propos de poezio sur linuxfr, je préfère faire une petite introduction pour que les gens ne soient pas perdus.</p>
<h2 id="présentation-de-poezio">Présentation de poezio</h2>
<p>Poezio est un client de messagerie instantanée en console pour le réseau XMPP (Jabber) (pour plus de détails, voir la série de très bons journaux rédigés par <a href="//linuxfr.org/users/goffi">goffi</a> qui vont en détail dans le protocole et ce qu’il permet d’accomplir).</p>
<p>Poezio est conçu pour être rapide à utiliser au quotidien, avec une utilisation de rapprochant des clients IRC bien connus comme weechat et irssi. Dans cet esprit, il est avant tout conçu pour les salons de discussions (MUC) et ne gérait même pas la connexion a un compte (on peut maintenant en avoir un) dans les premières versions, dans l’idée d’avoir le même genre de client qui ne nécessite pas de configuration préalable.</p>
<p>Il offre néanmoins un certain nombre de fonctionalités avancées liées à XMPP, comme la correction de messages, les accusés de réception, les message carbons (duplication de messages vers toutes les devices), le formatage xhtml-im, une interface de debug XML complète, et bien plus encore.<br>
Un certain nombre de compromis sont malheureusement réalisés du fait de l’interface en ncurses qui limite un peu les options niveau UI.</p>
<p>Du point de vue de la sécurité, poezio force le chiffrement avec le serveur en utilisant des ciphers corrects (l’utilisateur peut cependant désactiver le chiffrement ou réduire la qualité des ciphers), fait du cert pinning (via un hash du certificat à la première connexion, et un gros warning avec un prompt si ça change ensuite). Il intègre également un plugin GPG (que personne n’utilise) et OTR. </p>
<p>Côté technologie, poezio dépend généralement de la dernière version de python en date à chaque nouvelle release, ce qui est rarement du goût de debian stable.</p>
<p>Enfin, poezio est placé sous licence zlib.</p>
<h2 id="nouveautés-de-poezio-09">Nouveautés de poezio 0.9</h2>
<h3 id="python-34-et-slixmpp">Python 3.4 et slixmpp</h3>
<p>Une fois de plus, la version de python requise est incrémentée (pour 3.4).</p>
<p>Cette fois c’est parce que nous avons changé de bibliothèque XMPP pour <a href="http://blog.louiz.org/slixmpp">slixmpp</a>, qui est notre fork de SleekXMPP (bibliothèque utilisée auparavant), en y substituant le multithreading évènementiel par asyncio. Pour comprendre les raisons de ce fork, référez-vous à l’article de louiz’ donné en lien ci-dessus. (pour résumer : un code plus lisible, pas de race conditions, plus de facilité à raisonner sur le code)</p>
<p>Cela ne veut pas dire pour autant qu’on se désolidarise complètement de SleekXMPP qui reste une excellente bibliothèque, puisque slixmpp partage toujours avec elle la majorité de son code sans modification. Nous pourrons donc appliquer des nouvelles fonctionnalités et corrections sans ou avec peu de modifications, et leur envoyer les nôtres en retour également.</p>
<h3 id="plugin-otr-amélioré">Plugin OTR amélioré</h3>
<p>Le <a href="http://doc.poez.io/0.9/plugins/otr.html">plugin OTR</a> qui avait été réécrit avec <a href="http://blog.mathieui.net/poezio-0-8-fr.html">poezio 0.8</a> manquait encore des fonctionnalités communément attendues dans un plugin de chiffrement, c’est maintenant corrigé.</p>
<p>La nouvelle fonctionnalité majeure est le Socialist Millionaire’s Protocol (SMP) qui permet à deux personnes de vérifier l’identité de leur correspondant respectif, à travers un secret partagé ou une question (auparavant il était possible de vérifier les identés, mais seulement en communiquant les empreintes de clefs sur un autre canal).</p>
<p>D’autres améliorations sont présentes comme un peu de traitement de HTML pour améliorer l’expérience utilisateur, et d’autres options de sécurité pour forcer le chiffrement et la négociation de session. </p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f626c6f672e6d617468696575692e6e65742f696d616765732f6f74725f6469616c6f672e706e67/otr_dialog.png" alt="OTR" title="Source : http://blog.mathieui.net/images/otr_dialog.png"></p>
<h3 id="connexion-avec-des-certificats-clients">Connexion avec des certificats clients</h3>
<p>Poezio permet désormais de se connecter sans mot de passe à son serveur en utilisant des certificats X.509 et un mécanisme décrit dans la <a href="http://xmpp.org/extensions/xep-0178.html">XEP-0178</a>, et également de gérer ces derniers à travers les fonctionnalités décrites dans la <a href="http://xmpp.org/extensions/xep-0257.html">XEP-0257</a>.<br>
Avec ces fonctionnalités vous pouvez, une fois connecté, ajouter, désactiver, lister ou supprimer ces certificats du serveur. <br>
Un <a href="https://code.google.com/p/prosody-modules/issues/detail?id=68">bug</a> dans le module prosody empêche malheureusement l’utilisation de la XEP-0257 pour l’ajout d’un certificat, mais on peut le patcher en attendant.</p>
<h3 id="commandes-ad-hoc">Commandes ad-hoc</h3>
<p>Les <a href="//linuxfr.org/usrs/goffi/journaux/parlons-xmpp-episode-6-les-commandes-a-distance">commandes ad-hoc</a> dans XMPP permettent à un humain d’interagir avec une entité sans qu’il existe de spécification précise quant à la nature de l’interaction (en dehors XEP-0050, justement). Par exemple, prosody permet avec le chargement du bon module de charger/décharger des modules, de déconnecter ou supprimer des utilisateurs, etc, juste avec des commandes ad-hoc.<br>
Dorénavant, poezio peut donc lister et exécuter ces commandes ad-hoc à travers une interface dédiée. </p>
<h3 id="couleurs-de-nick">Couleurs de nick</h3>
<p>Auparavant, les couleurs de nicks étaient attribuées selon l’ordre d’entrée des participants dans le salon, ce qui était mémorisable en gardant poezio ouvert plusieurs mois, mais restait perturbant quand la même personne avait une couleur différente selon le salon dans laquelle elle était. <br>
À partir de maintenant, les nicks seront hashés avant d’être projetés sur la liste des couleurs disponibles, ce qui permet d’obtenir une distribution relativement uniforme, aléatoire, et surtout fixe des couleurs. Les gens qui utilisent le même nick partout devraient donc toujours garder la même couleur.<br>
Si vous préfériez l’ancien comportement (pour des raisons étranges sûrement valides), il existe toujours et peut être réactivé en changeant une option.</p>
<p>De plus, <a href="//linuxfr.org/users/perdu">Perdu</a> a ajouté une commande pour régler définitivement la couleur d’un nick, donc si vous trouvez qu’une couleur attribuée ne convient pas à quelqu’un, vous pouvez le modifier.</p>
<h3 id="accusés-de-réception">Accusés de réception</h3>
<p>Les messags envoyés par poezio demandent maintenant des accusés de réception, si le correspondant les prend en charge. Évidemment, poezio répond également aux demandes d’accusés de réception, ce qui devrait permettre aux clients mobiles plus de fiabilité.<br>
Ce comportement peut être personnalisé, mais il est activé par défaut. Si un accusé de réception est reçu pour un message envoyé, un caractère de validation en vert s’affichera à côté du message.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f626c6f672e6d617468696575692e6e65742f696d616765732f706f657a696f5f72656365697074732e706e67/poezio_receipts.png" alt="poezio receipts" title="Source : http://blog.mathieui.net/images/poezio_receipts.png"></p>
<h3 id="gestion-de-marque-pages">Gestion de marque-pages</h3>
<p>La commande <code>/bookmarks</code> permettait auparavant de lister tous les marque-pages connus, de façon un peu brute. Désormais cette commande ouvre un onglet vous permettant d’éditer les marque-pages, mots de passe, et de choisir l’emplacement de stockage ainsi que l’autojoin à l’ouverture du client.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f626c6f672e6d617468696575692e6e65742f696d616765732f706f657a696f5f626f6f6b6d61726b732e706e67/poezio_bookmarks.png" alt="poezio bookmarks" title="Source : http://blog.mathieui.net/images/poezio_bookmarks.png"></p>
<h3 id="performance">Performance</h3>
<p>Certains bouts de poezio étaient affreusement mal optimisés. Certains le sont certaiement encore, mais quelques scénarios assez communs devraient être plus rapides de façon exponentielle (par exemple rejoindre un salon avec plusieurs milliers de participants). La lenteur est habituellement invisible dans les cas normaux (comme quelqu’un utilisant poezio sur un ordinateur contruit après 2002 en ayant quelques tabs ouverts), mais ça devient plus problématique quand poezio tourne sur une board ARMv7 à faible consommation avec plusieurs centaines de salons ouverts et un flux constant de nouveaux messages ou présences.</p>
<h3 id="plugin-irc">Plugin IRC</h3>
<p>louiz’ a écrit entre temps un composant IRC appelé <a href="http://biboumi.louiz.org">biboumi</a> (qui est pour moi la meilleure passerelle IRC disponible). Malheureusement, mélanger des onglets IRC et des MUC normaux est un peu perturbant, j’ai donc écrit un plugin IRC simpliste qui, une fois configuré correctement, gère l’authentification avec nickserv et la connexion aux salons ensuite, ainsi que des commandes préfixées par <code>irc_</code> pour plus de fluidité dans un fonctionnement normal. Le fonctionnement interne est un hack, mais ça reste bien plus agréable que de tout faire soi-même à chaque fois.</p>
<h3 id="reconnexion-aux-salons">Reconnexion aux salons</h3>
<p>Le problème quand une connexion timeout ou qu’un serveur redémarre est que vous pouvez ne jamais être prévenu que vous n’êtes en fait plus dans le salon avant que vous n’essayiez d’envoyer un message ou une présence et que ce dernier vous réponde par une erreur. Cette nouvelle version introduit in mécanisme appelé le <code>self-ping</code> qui, une fois activé (et éventuellement configuré plus finement), fera en sorte que poezio s’envoie un ping à travers chaque salon au bout d’un certain temps d’inactivité. Si le salon lui reçoit par une erreur, il va quitter le salon (afin d’être certain de ne plus y être) puis y revenir. <br>
Cela devrait permettre de ne plus découvrir le matin que l’on a été déconnecté de tous les salons juste après avoir été se coucher parce qu’un serveur a rebooté quelque part.</p>
<h3 id="et-bien-plus-encore">Et bien plus encore</h3>
<p>Bien évidemment, il y a plus de commits que ça (plus de 500), que ce soit pour des nouvelles fonctionnalités ou des corrections de bugs. Par exemple, des améliorations de la commande /set, une refonte de l’onglet de debug XML, une commande de destruction de salon, le passage au SHA-2 pour la vérification du certificat, etc…<br>
Vous pouvez regarder le <a href="http://git.poez.io/poezio/tree/CHANGELOG?id=682074303330254ae1a349a7f3a337122de4fe30">CHANGELOG</a> ou <a href="https://dev.louiz.org/projects/poezio/repository/revisions">l’historique git</a> pour plus de nouveautés.</p>
<h3 id="packaging">Packaging</h3>
<p>Comme dit précédemment, poezio dépend maintenant de la bibliothèque slixmpp, cette dernière dépendant d’<a href="https://github.com/saghul/aiodns">aiodns</a>, ainsi qu’optionellement de <a href="http://cython.org">cython</a> afin d’optimiser un module (et dans ce cas <a href="http://gnu.org/software/libidn">libidn</a> sera requis également, ainsi que ses headers pendant la compilation).</p>
<h3 id="contributeurs">Contributeurs</h3>
<p>En dehors de moi (mathieui), <a href="http://louiz.org">louiz’</a>, et <a href="http://linkmauve.fr">Link Mauve</a>, je veux remercier les autres contributeurs <a href="http://ploudseeker.com">Perdu</a>, <a href="http://op-co.de">Ge0rG</a>, <a href="http://bananium.fr">eijebong</a>, Florian Duraffour et Akim Sadaoui pour leur apport en fonctionnalités et corrections.</p>
<h3 id="bugs">Bugs</h3>
<p>Comme toujours, si vous essayez la release et que vous remarquez un bug également non corrigé dans la version git, merci de le <a href="http://dev.poez.io/new">rapporter</a>.</p>
<h2 id="liens">Liens</h2>
<ul>
<li><a href="http://poez.io">Site du projet</a></li>
<li><a href="http://blog.mathieui.net/poezio-0-9-fr.html">Article original</a></li>
<li><a href="https://dev.louiz.org/projects/poezio/files">Téléchargements</a></li>
<li><a href="http://doc.poez.io/0.9/">Documentation</a></li>
</ul><div><a href="https://linuxfr.org/users/mathieui/journaux/sortie-de-poezio-0-9.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/106418/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/mathieui/journaux/sortie-de-poezio-0-9#comments">ouvrir dans le navigateur</a>
</p>
mathieuihttps://linuxfr.org/nodes/106418/comments.atomtag:linuxfr.org,2005:Diary/355962015-02-06T13:24:50+01:002015-02-06T13:24:50+01:00Présentation du projet PleaseShare et sortie de la version 0.5Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<h2 id="présentation-de-pleaseshare">Présentation de PleaseShare</h2>
<p>PleaseShare est une application web qui sert de “cyberlocker”, c’est à dire d’entrepôt de données en ligne pour les utilisateurs lambda qui veulent partager des fichiers avec d’autres de façon simple.</p>
<p>L’idée principale est d’utiliser la fonctionnalité <a href="http://bittorrent.org/beps/bep_0019.html">webseeds</a> de bittorent afin d’avoir un service d’hébergement de fichiers qui est :</p>
<ol>
<li>Auto-hébergé</li>
<li>Rapide même si auto-hébergé (exemple : ADSL)</li>
<li>Résistant aux attaques (DDoS du serveur, par exemple)</li>
<li>Facile à utiliser</li>
<li>Anonyme</li>
</ol><p>L’utilisation des webseeds permet à PleaseShare de fournir des téléchargements qui sont <strong>au moins aussi rapides</strong> que des téléchargements HTTP classiques, mais qui ne perdent pas en débit quand le nombre de téléchargeurs augmente et que le trafic montant du serveur sature.</p>
<h3 id="fonctionnalités">Fonctionnalités</h3>
<ul>
<li>Traductions automatiques qui dépendent de l’ <code>Accept-language</code> du navigateur. Seuls l’anglais et le français sont actuellement disponibles.</li>
<li>Page « Vos fichiers » qui ne dure que le temps de la session</li>
<li>Suppression des fichiers possible envoyés si l’utilisateur a entré un mot de passe au moment de l’envoi, ou s’il utilise encore la même session</li>
<li>Envoi d’archives (compressées ou pas) qui seront extraites pour créer des torrents contenant plusieurs fichiers/dossiers</li>
<li>Liste d’autres trackers à utiliser dans le torrent, choisis par l’utilisateur</li>
<li>Liste d’autres webseeds à utiliser dans le torrent, choisis par l’utilisateur</li>
<li>Possibilité de création d’un torrent privé (sans utilisation de la DHT) ou non</li>
<li>Ajout forcé de trackers lors de la création du torrent ou non</li>
<li>Ajout d’autres webseeds connues du serveur (par exemple en synchronisant le dossier d’upload avec un autre serveur)</li>
<li>Tout ça est bien évidemment configurable comme il se doit</li>
</ul><h3 id="détails-techniques">Détails techniques</h3>
<p>PleaseShare est écrit en Python 3.4, utilise flask avec que ses extensions flask-babel, flask-wtf et flask-sqlalchemy, et réutilise des bouts modifiés du client torrent <a href="http://deluge-torrent.org/">Deluge</a>.</p>
<h3 id="licence">Licence</h3>
<p>PleaseShare est placé sous la licence <a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPLv3</a>.</p>
<h3 id="liens">Liens</h3>
<ul>
<li><a href="http://pleaseshare.mathieui.net">Page du projet</a></li>
<li><a href="https://pypi.python.org/pypi/pleaseshare">Page pypi du projet</a></li>
<li>Le projet sur <a href="https://github.com/mathieui/pleaseshare">github</a>, <a href="https://gitorious.org/pleaseshare">gitorious</a>, <a href="http://git.jeproteste.info/pleaseshare">mon propre repo</a>
</li>
<li>Ma propre instance sur <a href="http://share.jeproteste.info">share.jeproteste.info</a>
</li>
</ul><div><a href="https://linuxfr.org/users/mathieui/journaux/presentation-du-projet-pleaseshare-et-sortie-de-la-version-0-5.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/104725/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/mathieui/journaux/presentation-du-projet-pleaseshare-et-sortie-de-la-version-0-5#comments">ouvrir dans le navigateur</a>
</p>
mathieuihttps://linuxfr.org/nodes/104725/comments.atom