Planete JabberFR

XMPP croque la pomme !

La lettre d’information XMPP de septembre 2020 est disponible en anglais sur xmpp.org


N. D. T. — Ceci est une traduction de la lettre d’information publiée régulièrement par l’équipe de communication de la XSF, essayant de conserver les tournures de phrase et l’esprit de l’original. Elle est publiée conjointement sur les sites LinuxFr.org et JabberFR.org. La liste des personnes y ayant contribué est disponible sur Linuxfr.org.


Bienvenue dans la lettre d’information XMPP couvrant le mois de septembre 2020.

Vous y trouverez, en plus des nouveautés, un appel à contribuer à la documentation et à la vie de XMPP.

Annonces de la XSF

La XSF a ouvert sa période de candidature pour les élections annuelles du Bureau et du Conseil de la XSF. Les candidats pour le Conseil doivent être des membres élus de la XSF, alors que les sièges du Bureau sont ouverts à tout le monde. Si vous êtes intéressés pour candidater à ces postes, visitez la page de candidature.

La période de candidature du quatrième trimestre 2020 pour devenir membre de la XSF est également ouverte. Si cela vous intéresse, faites vous connaître ici.

Articles

Le blog allemand kuketz-blog.de a publié la partie 6 de sa série sur les messageries instantanées [en allemand], cet opus s’intéressant spécifiquement à Conversations, client XMPP pour Android.

Tigase a publié un article sur le développement de sa bibliothèque multi‑plate‑forme Halcyon [en anglais] écrite en Kotlin.

Dans un autre article publié plus tard dans le mois, ils ont abordé les problématiques de publication et d’abonnement [en anglais], toujours avec Halcyon, via la XEP‑0060.

Et pour clore cette série d’articles, l’équipe de Tigase a expliqué la mise en place de fonctionnalités STUN et TURN en complément de leur serveur XMPP [en anglais] en utilisant la XEP‑0215.

Des nouvelles des logiciels

Clients et applications

Une nouvelle version majeure de Movim est sortie, avec des notifications améliorées, de nouvelles fonctionnalités de discussion et de vidéoconférence et une grande amélioration des performances. Une nouvelle version de l’application Android est également disponible pour intégrer toutes ces fonctionnalités dans cet environnement. Découvrez toutes les améliorations de cette nouvelle version dans le billet officiel de publication Movim 0.18 – Oterma. Jetez donc un œil au widget de dessin de Movim :

Widget de dessin dans Movim

Nouvelles de septembre du développement de Gajim : le billet de ce mois‑ci marque la première année des « Nouvelles du développement de Gajim » ! La refonte de la fenêtre de préférences de Gajim est arrivée à sa fin. Les invitations à rejoindre des salons ont été améliorées et le paramétrage des salons rendu plus simple d’accès. Rejoindre un salon est maintenant beaucoup plus agréable.

MCabber, le vénérable client à interface textuelle, a été publié en version 1.1.1 et 1.1.2. Outre les corrections de bogues, la prise en charge de l’affichage du nombre de messages non lus et la réorganisation de la gestion des messages en copie carbone ont été implémentées.

Le SDK Python pour les appareils de cuisine General Electric connectés par Wi‑Fi, gekitchen, a publié sa première version sur GitHub. L’objectif initial est de l’utiliser pour pousser les intégrations du Home Assistant, bien que cela nécessite probablement d’attendre l’arrivée de nouveaux types d’entités. Il utilise XMPP comme un moyen d’authentification, puisque c’est ce qu’utilise l’application GE SmartHQ pour communiquer avec les appareils.

XMPP sur iOS et macOS semble se renforcer :

  • Bienvenue à BeagleIM 4.0 et SiskinIM 6.0 ! Les clients iOS et macOS de Tigase communiquent via la XEP‑0369 (Mediated Information eXchange, ou MIX), nouveau protocole des salons de discussion XMPP. La connectivité VoIP a été améliorée avec l’implémentation de la XEP‑0353 (Jingle Message Initiation), la XEP‑0308 (Last Message Correction) est disponible pour corriger les messages qui ont déjà été envoyés, et d’autres fonctionnalités ont été ajoutées comme la XEP‑0424 (Message Retractation) et les réponses rapides pour les citations. La prise en charge des formulaires de CAPTCHA a été également implémentée : la XEP‑0158 (CAPTCHA Forms) est mise en place pour des vérifications supplémentaires lors de l’enregistrement d’un compte. Bien sûr, il y a aussi beaucoup d’autres changements et corrections !
  • Le client Monal, pour iOS et macOS, s’est vu associer un nouveau serveur de push et a reçu des améliorations concernant la gestion de l’archivage des messages. C’est un des nombreux changements qui arrivera dans les futures versions. Soyez prêts et jetez‑y un œil dans la Beta Testflight de Monal.

Serveurs

Aucune chance pour les indésirables : Openfire présente son nouveau greffon Spam blacklist qui permet aux utilisateurs de faire des signalements. Signalez les spammeurs en puissance ! Le greffon d’observation d’Openfire a été publié en version 2.1.0, permettant la recherche sur l’ensemble du texte des messages archivés.

L’équipe du serveur XMPP Prosody a été bien occupée ce mois‑ci avec plusieurs choses sympathiques. Pour commencer, elle a annoncé la publication de la version 0.11.6 de Prosody. Les développeurs ont également publié une série de nouveaux modules pour permettre une inscription sur simple invitation qui peut aider et guider les nouveaux utilisateurs à choisir un client adéquat et créer leur premier compte XMPP. Et pour finir, ils ont publié un ensemble de conseils pour quiconque souhaitant s’attaquer aux messages indésirables sévissant sur le réseau XMPP.

Inscription par invitation sur un serveur Prosody

Bibliothèques

La petite bibliothèque libstrophe pour client XMPP, écrite en C, a été publiée en version 0.10.0 qui, outre les corrections de bogues et une nouvelle API, apporte de nouvelles fonctionnalités : prise en charge des méthodes d’authentification SCRAM‑SHA‑256 et SCRAM‑SHA‑512, prise en charge de la bibliothèque de résolution asynchrone de nom de domaines c‑ares, prise en charge de LibreSSL et ajout de gestionnaires à déclenchement périodique, indépendamment du statut des connexions.

Une deuxième bêta a été publiée pour Smack 4.4.0, la bibliothèque XMPP en Java de la communauté Ignite RealTime.

Divers

Google Summer of Code 2020 : Anmol a résumé ses trois mois de travail sur l’implémentation de messages en temps réel dans Dino (XEP‑0301 In‑Band Real Time Text) via un dernier billet de blog.

Le propriétaire du domaine joinxmpp.org manque de temps pour développer ce projet plus avant. Il a écrit un court résumé décrivant les objectifs originaux et indique qu’il cherche maintenant quelqu’un de motivé pour reprendre le projet.

Extensions et spécifications

Les développeurs et autres experts de la standardisation de par le monde collaborent à ces extensions, développant de nouvelles spécifications pour les pratiques naissantes, et affinant les manières de faire existantes. Proposées par qui le souhaite, les spécifications rencontrant le plus de succès aboutissent à un statut de « Finale » ou « Active », en fonction de leur type, alors que les autres sont soigneusement archivées sous l’appellation « Ajournée ». Ce cycle de vie est décrit dans la XEP‑0001 qui contient les définitions formelles et canoniques pour les types, états et processus. Apprenez en plus sur le processus de standardisation.

Mises à jour

  • version 2.11.0 de la XEP‑0004 (Data Forms) : clarifie davantage la nécessité de l’existence d’un attribut type dans les champs.

Derniers appels

Les derniers appels sont émis une fois que chacun semble satisfait de l’état courant d’une XEP. Après que le Conseil a décidé que la XEP était prête, l’éditeur XMPP émet un dernier appel à commentaires. Les retours rassemblés pendant le dernier appel aident à améliorer la XEP avant qu’elle ne retourne devant le Conseil pour une évolution vers le statut de brouillon :

Extensions proposées

Le processus de développement d’une XEP commence par la mise par écrit d’une idée et sa soumission à l’éditeur XMPP. Dans un délai de deux semaines, le Conseil décide s’il accepte d’accorder à cette proposition le statut d’une XEP expérimentale :

  • ensembles de tests de conformité XMPP 2021 : ce document définit les catégories d’application XMPP pour différents usages (Core, Web, IM et Mobile), et spécifie les XEP que les logiciels clients et serveurs ont besoin d’implémenter pour être conformes à ces usages.

Remerciements

Cette lettre d’information XMPP a été réalisée collaborativement par la communauté. Merci à agnauck, emus, mdosch, mwild1, pep., pmaziere, Seve, wurstsalat3000 et Zash pour leur aide durant son élaboration !

Diffusez ces informations !

Partagez ces informations sur les « réseaux sociaux » :

Trouvez et proposez des offres d’emploi sur le site xmpp.work.

Appel à la communauté

Inscrivez‑vous à la lettre d’information

Nous vous invitons à vous inscrire pour recevoir les prochaines éditions en anglais dans votre boîte de courriel dès qu’elles seront publiées ! Diffusez cette lettre d’information à quiconque serait intéressé.

Aidez‑nous à élaborer cette lettre d’information

Nous avons commencé à mettre en place un brouillon à chaque nouvelle édition dans le dépôt GitHub de la XSF. Et nous sommes toujours ravis d’accueillir des contributeurs et des contributrices. Joignez‑vous à la discussion dans le salon de notre équipe de communication et aidez‑nous ainsi à alimenter cette lettre dans un effort communautaire.

Vous avez un projet et vous écrivez, ou voudriez écrire, à son sujet ? N’hésitez pas à venir partager vos informations ou évènements ici‑même, et diffusez‑les à un large public ! Même si vous n’y passez que quelques minutes, cela sera déjà utile.

Les tâches qui nécessitent d’être réalisées de manière régulière sont, par exemple :

  • l’agrégation des informations de l’univers XMPP ;
  • la reformulation courte des informations et des évènements ;
  • le résumé des communications mensuelles sur les extensions (XEP) ;
  • la relecture du brouillon ;
  • les traductions, particulièrement en français, allemand et espagnol.

Licence

Cette lettre d’information est publiée sous la licence CC BY‑SA 4.0.

XMPP fait le café !

La lettre d’information XMPP est disponible en anglais sur xmpp.org


N. D. T. — Ceci est une traduction de la lettre d’information publiée régulièrement par l’équipe de communication de la XSF, essayant de conserver les tournures de phrase et l’esprit de l’original. Elle est publiée conjointement sur les sites LinuxFr.org et JabberFR.org. La liste des personnes y ayant contribué est disponible sur Linuxfr.org.


Bienvenue dans la lettre d’information XMPP couvrant le mois d’août 2020.

Vous y trouverez, en plus des nouveautés, un appel à contribuer à la documentation et à la vie de XMPP.

Articles

Lorenz Kästle a écrit un article sur la mise en place d’un système de notification pour l’outil de supervision Icinga 2 en utilisant python3-slixmpp (dépôt Github) [en allemand].

Des nouvelles des logiciels

Clients et applications

Le client de bureau multiplateforme Gajim 1.2.2 est sorti. Cette version amène une vérification hebdomadaire automatique des mises à jour pour Windows et MacOS, un important remaniement des messages de statut, et de nombreuses améliorations.
Des nouvelles supplémentaires du développement d’août : le mode de stockage des préférences a été revu pour passer de fichiers textes à une base de données SQLite et une grande quantité de code a été nettoyée, ce qui devrait vous permettre de gérer plus facilement toutes les possibilités de configuration de Gajim.

Le client iOS et macOS Monal gère dorénavant ses traductions sur Weblate. 27 langues attendent leurs locuteurs de langue maternelle et d’excellents interprètes ! Allez également jeter un œil à la version Bêta 4.7.0, et préparez-vous à la sortie qui s’annonce !

Il y a eu des améliorations chez Salut à Toi du côté de l’interface utilisateur et du partage de fichiers :

  • Libervia, le client web, a vu son interface utilisateur modifiée de manière importante avec un nouveau thème basé sur le cadriciel CSS Bulma. Les notes de progression de la semaine 31 expliquent également comment le moteur de gabarits Nunjucks est utilisé dans le navigateur pour appliquer les mêmes gabarits que ceux utilisés par le moteur Jinja 2.
  • Le composant de partage de fichiers inclus dans SàT implémente dorénavant la XEP-0363 (HTTP File Upload) qui vient compléter la XEP-0234 (Jingle File Transfer). Les fichiers téléversés vers ce composant depuis n’importe quel client XMPP apparaîtront dans l’interface utilisateur de partage de fichiers de SàT et pourront y être supprimés depuis cette interface ou avec la XEP-0050 (Ad-Hoc Commands).
  • L’album photo de Libervia a été grandement amélioré avec un carrousel adapté aux écrans mobiles comme à ceux des bureaux, une manière facile de téléverser des fichiers depuis le navigateur et l’intégration de vidéos. Le travail est en cours pour faire de Libervia et SàT un candidat adéquat pour devenir un réseau social familial basé sur XMPP, avec une sortie prévue aux environs de la fin du mois de septembre ou début octobre.

Album photo de Libervia

Le client Android aTalk 2.4.0 est sorti. Les changements sont principalement internes avec plusieurs mises à jour de bibliothèques et des corrections d’erreurs de compilations. Cette publication a été suivie par la version 2.4.1 qui corrige un problème de stockage spécifique à Android Q.

Le client de bureau Dino a reçu une aide du fond NGI0 PET géré par NLnet qui reçoit un support financier du programme Next Generation Internet de la commission européenne. Elle permet aux développeurs de consacrer du temps et des efforts à implémenter les appels vidéo et audio dans leur client. C’est vraiment une très bonne nouvelle !

Le client multiplateforme Kaidan est sorti en version 0.6.0. Cette mise à jour inclut des correctifs de stabilité, une nouvelle mise en attente de messages hors-ligne et des améliorations dans la correction de message. De plus, l’implémentation de la XEP-0363 (HTTP File Upload) issue de la bibliothèque XMPP QXmpp est maintenant utilisée.

Mise en attente des messages hors-ligne dans Kaidan

Spark, le client multiplateforme de la communauté Ignite Realtime, a publié sa version 2.9.0 que l’on n’attendait plus. Elle amène des améliorations dans la gestion des certificats et des méthodes supplémentaires de transfert de fichiers. Elle a été suivie par les versions 2.9.1 et 2.9.2. Allez jeter un œil à la liste des changements qui vaut le coup pour ses nombreuses corrections de bogues et ses améliorations.

Serveurs

Le serveur XMPP Tigase, basé sur Java, est maintenant disponible sous forme d’une image Docker pour faciliter son déploiement sur votre serveur.

Openfire, le serveur XMPP de la communauté Ignite Realtime, a un nouveau greffon qui rend disponible le client web JSXC pour ses utilisateurs.

Bibliothèques

Smack, la bibliothèque modulaire pour client XMPP de la communauté Ignite Realtime, a vu la sortie de sa première Bêta pour la version 4.4 à venir ! La liste des changements va de la nouvelle API de transport modulaire qui facilite la bascule à l’exécution du mécanisme de transport sous-jacent d’une connexion XMPP en cours d’utilisation, à l’ajout de la prise en charge de la XEP-0373 (OpenPGP for XMPP), la XEP-0424 (Message Retraction), et environ une douzaine d’autres spécifications. Comme d’habitude, tout cela est disponible sur Maven Central.

La bibliothèque faisant tourner Gajim, python-nbxmpp, a sorti sa version 1.0.2. Cette dernière version améliore la normalisation des noms de domaines et corrige des problèmes réseau qui apparaissent dans certaines circonstances après la mise en veille de l’appareil.

Divers

Vous voulez un café avec un petit goût d’XMPP ? Durant ces derniers mois, COM8 a travaillé à une implémentation de référence de son nouveau protocole XMPPIoT [N.D.T.: XMPP Internet of Things, XMPP pour l’Internet des Objets]. Un premier brouillon, plutôt basique, a été publié dans son mémoire de licence. En utilisant UWPX, le client XMPP reposant sur l’UWP de Windows 10, il est possible d’enregistrer une machine à café de marque JURA comme un nouvel appareil IoT. Cela permet d’envoyer et de recevoir des commandes depuis et vers cet appareil, en utilisant un ESP32 de Espressif, un microcontrôleur SoC à bas coût et à basse consommation. L’ESP32 fonctionne comme un proxy entre XMPP et le protocole propriétaire de JURA. Une vidéo du prototype fonctionnel peut être trouvée sur Twitter.

XMPP fait le café

Google Summer of Code

Depuis début mai, des étudiants du monde entier travaillent sur plusieurs projets libres dans le cadre de cette saison du Google Summer of Code. Nous aimerions présenter les étudiants qui travaillent sur les projets XMPP du GSoC et partager leurs premières entrées de blog :

Aditya Borikar travaille sur la prise en charge de WebSocket dans Smack ; historique de son blog :

Anmol (wolfie_anmol) travaille à l’implémentation de messages en temps réel dans Dino (XEP‑0301 In‑Band Real Time Text) ; historique de son blog :

Merci de votre participation aux projets XMPP du GSoC et continuez votre travail de qualité ! Ces dernières entrées marquent la fin du Google Summer of Code 2020. Merci à tous les participants de la communauté XMPP pour leur extraordinaire travail. Portez-vous bien et restez connectés avec XMPP !

Extensions et spécifications

Apprenez-en plus sur le processus de standardisation.

Nouveautés

  • XEP-0442 (Pubsub Message Archive Management)
    • Ce document définit un protocole pour interroger et contrôler l’archive des messages d’un nœud pubsub. (Accepté par vote du Conseil le 19 aout 2020)
  • XEP-0441 (Message Archive Management Preferences)
    • Ce document définit un protocole pour contrôler les préférences d’archivage d’un utilisateur. (Accepté par vote du Conseil le 19 aout 2020)

Mises à jour

  • Version 1.19.0 de la XEP-0060 (Publish Subscribe)
    • Ajout de la clé item et de l’action retrieve pour interroger le registre de type.
  • Version 1.2 de la XEP-0178 (Best Practices for Use of SASL EXTERNAL with Certificates)
    • Ajout de dialback comme solution de repli si l’authentification EXTERNAL échoue pour diverses raisons.
  • Version 1.33.0 de la XEP-0045 (Multi-User Chat)
    • Clarifie que le code de statut 307 ne devrait pas être utilisé avec 333 pour la déconnexion d’un utilisateur
  • Version 0.2.0 de la XEP-0440 (SASL Channel-Binding Type Capability)
    • Discute de l’interaction avec le mécanisme SASL et ajoute des considérations de sécurité
    • Recommande l’implémentation d’un serveur TLS en bout de chaine
  • Version 1.2 de la XEP-0048 (Bookmarks)
    • Rendue obsolète en faveur de la XEP-0402 (PEP Native Bookmarks)

Derniers appels

Les derniers appels sont émis une fois que chacun semble satisfait de l’état courant d’une XEP. Après que le Conseil a décidé que la XEP était prête, l’Éditeur XMPP émet un dernier appel à commentaires. Les retours rassemblés pendant le dernier appel aident à améliorer la XEP avant qu’elle ne retourne devant le Conseil pour une évolution vers le statut de brouillon.

Extensions proposées

Le processus de développement d’une XEP commence par la mise par écrit d’une idée et sa soumission à l’Éditeur XMPP. Dans un délai de deux semaines, le Conseil décide s’il accepte d’accorder à cette proposition le statut d’une XEP expérimentale.

Remerciements

Cette lettre d’information XMPP a été réalisée collaborativement par la communauté. Merci à COM8, emus, jcbrand, jerome-poisson, jonas’, Licaon_Kter, melvo, pmaziere, SeveFP, vanitasvitae, wurstsalat, Zash pour leur aide durant son élaboration !

Diffusez ces informations !

Partagez ces informations sur les « réseaux sociaux » :

Trouvez et proposez des offres d’emploi sur le site xmpp.work.

Appel à la communauté

Inscrivez‑vous à la lettre d’information

Nous vous invitons à vous inscrire pour recevoir les prochaines éditions en anglais dans votre boîte de courriel dès qu’elles seront publiées ! Diffusez cette lettre d’information à quiconque serait intéressé.

Aidez‑nous à élaborer cette lettre d’information

Nous avons commencé à mettre en place un brouillon à chaque nouvelle édition dans le dépôt GitHub de la XSF.

Et nous sommes toujours ravis d’accueillir des contributeurs et des contributrices. Joignez‑vous à la discussion dans le salon de notre équipe de communication et aidez‑nous ainsi à alimenter cette lettre dans un effort communautaire.

Vous avez un projet et vous écrivez, ou voudriez écrire, à son sujet ? N’hésitez pas à venir partager vos informations ou évènements ici‑même, et diffusez‑les à un large public ! Même si vous n’y passez que quelques minutes, cela sera déjà utile.

Les tâches qui nécessitent d’être réalisées de manière régulière sont, par exemple :

  • l’agrégation des informations de l’univers XMPP ;
  • la reformulation courte des informations et des évènements ;
  • le résumé des communications mensuelles sur les extensions (XEP) ;
  • la relecture du brouillon ;
  • les traductions, particulièrement en français, allemand et espagnol.

Licence

Cette lettre d’information est publiée sous la licence CC BY‑SA 4.0.

Mise à jour Monal, eturnal et progrès du GSoC – 6 aout 2020

La lettre d’information XMPP est disponible en anglais sur xmpp.org


N. D. T. — Ceci est une traduction de la lettre d’information publiée régulièrement par l’équipe de communication de la XSF, essayant de conserver les tournures de phrase et l’esprit de l’original. Elle est publiée conjointement sur les sites LinuxFr.org et JabberFR.org. La liste des personnes y ayant contribué est disponible sur Linuxfr.org.


Bienvenue dans la lettre d’information XMPP couvrant le mois de juillet 2020.

Vous y trouverez, en plus des nouveautés, un appel à contribuer à la documentation et à la vie de XMPP.

Annonces de la XSF

JC Brand a mis en place un site de publication d’offres d’emploi en lien avec XMPP ! Il vous permettra d’accéder à des offres d’emploi, mais également de faire la publicité de services XMPP. Jetez‑y un œil, publiez vos propres offres et recommandez‑le. XMPP, ça marche !

Site de publication d’offres d’emploi XMPP

Articles

Quel est le potentiel de passage à l’échelle du serveur MongooseIM ? Découvrez comment Bartek Górny, un des membres de l’équipe MongooseIM, est parvenu à gérer presque 2,5 millions de connexions, échangeant 45 000 messages par seconde, et pourquoi il estime que 10 millions de connexions seraient facilement atteignables dans « Passer une mangouste à l’échelle » [en anglais].

Pep., contributeur du client XMPP Poezio et membre du bureau de la XSF, a écrit un article [en anglais] détaillant son point de vue sur l’interopérabilité au sein de XMPP et l’importance des principes de conception.

Yarmo Mackenbach a écrit un article [en anglais] sur XMPP et l’intégration de OMEMO dans Keyoxide, une plate‑forme moderne, sécurisée et orientée respect des données personnelles pour établir votre identité numérique en ligne et réaliser des opérations de chiffrement simple.

Des nouvelles des logiciels

Clients et applications

La version 1.2.1 du client de bureau multi‑plate‑forme Gajim a été publié. Deux semaines après la sortie de Gajim 1.2, la mise à jour suivante est déjà là. Gajim 1.2.1 inclut le signalement de messages indésirables, comme spécifié par la XEP‑0377, l’activation automatique des greffons inclus d’office, ce qui implique une activation de OMEMO par défaut, et quelques corrections de bogues. Les appels audio et vidéo y gagnent quelques améliorations, mais restent hautement expérimentaux.
Des nouvelles du développement de juillet : une vérification automatique des mises à jour de Gajim sur Windows et macOS, un stockage amélioré des mots de passe de comptes, une correction concernant OMEMO et un tas de petites améliorations.

Profanity, le client à interface utilisateur en mode texte, a publié sa version 0.9.5 qui corrige une éventuelle erreur de segmentation lors de l’usage de la commande /theme properties. Elle est utilisée pour afficher les couleurs exploitées par le thème courant.

Anurodh Pokharel a publié la version 4.7 du client pour iOS et macOS Monal. Malgré un numéro de version mineur, c’est une grosse mise à jour. En plus des corrections habituelles d’interface et des améliorations de stabilité, vous trouverez : une nouvelle barre de titre visible lors des discussions (illustrée ci‑dessous), la prise en charge de la XEP‑0319 (Last User Interaction in Presence) pour que vous sachiez quand votre contact s’est connecté pour la dernière fois, la prise en charge de la XEP‑0085 (Chat State Notifications) pour ces utiles notifications de « rédaction en cours », et la prise en charge de la XEP‑0191 (Blocking Command) à mettre en œuvre quand un indésirable se pointe.

La barre de navigation Monal

Le dépôt Git de Pix‑Art Messenger a été déplacé de GitHub à Codeberg. Ce processus de migration n’est pas encore terminé. En attendant, les deux dépôts tourneront en parallèle. Concernant le logiciel lui‑même, les versions 2.5.1 et 2.5.2 de Pix‑Art Messenger ont été publiées, surlignant en couleur les discussions épinglées, améliorant la qualité des vidéos et optimisant dynamiquement la compression des fichiers.

Kontalk pour Android a publié une nouvelle version 4.4.0 ! En dehors des corrections et des améliorations, il se dote d’un thème sombre, prend en charge le partage vers les groupes, l’exportation de médias ainsi que la suppression des médias associés lors de la suppression de messages. Les paramètres ont été réorganisés et Android 10 est dorénavant pris en charge.

Le client Android aTalk a publié plusieurs versions mineures 2.3.x comportant corrections et améliorations.

Serveurs

MongooseIM 3.7.1 est sorti !
Cette version se base sur la version 3.7.0, sortie en mai, qui avait introduit la prise en charge du transfert sécurisé d’autorisations à une sous‑couche réseau (en anglais, channel binding). Ce mécanisme sert à empêcher les attaques par rejeu pour l’ensemble des méthodes de SCRAM, une famille de mécanismes modernes d’authentification par défi‑réponse, basés sur des mots de passe, fournissant une authentification d’un utilisateur à un serveur. Cette précédente version fournissait également un ensemble de nouvelles méthodes d’authentification SCRAM basées sur différentes versions des fonctions de hachage cryptographique SHA, la capacité de rétracter des messages comme spécifié dans la XEP‑0424, et la prise en charge du Proxy Protocol qui transporte de manière sécurisée les informations de connexion, telles que l’adresse d’un client, à travers plusieurs couches de NAT ou de serveurs mandataires (proxies) TCP. La version 3.7.1 améliore tout cela en accélérant significativement toutes les méthodes SCRAM.

Tigase XMPP Server 8.1.0 General Availability est sorti et il est bourré d’améliorations !
Le mécanisme SASL-EXTERNAL défini dans la XEP‑0178 (Best Practices for Use of SASL EXTERNAL with Certificates) pour permettre les connexions authentifiées basées sur un certificat a été ajouté aux connexions de serveur à serveur, améliorant grandement la conformité avec le réseau fédéré XMPP. En fonction de la prise en charge par les autres serveurs, il est possible d’utiliser à la fois SASL‑EXTERNAL et Dialback, un autre mécanisme d’authentification défini par la XEP‑0220. Plusieurs extensions XMPP ont été ajoutées :

  • XEP‑0398 (User Avatar to vCard‑Based Avatars Conversion) : conversion de l’avatar utilisateur en avatar basé sur vCard ;
  • XEP‑0156 (Discovering Alternative XMPP Connection Methods) : découverte de méthodes alternatives de connexions XMPP ;
  • XEP‑0410 (MUC Self‑Ping — Schrödinger’s Chat) : auto‑ping des salons de discussion ;
  • XEP‑0153 (vCard‑Based Avatars) : avatars basés sur vCard ;
  • XEP‑0411 (Bookmarks Conversion) : conversion des marque‑pages ;
  • XEP‑0157 (Contact Addresses for XMPP Services) : adresses de contacts pour les services XMPP.

Cette version améliore également la gestion de multiples domaines dans des hôtes virtuels et active par défaut un nouveau greffon anti‑pourriel.

Un nouveau serveur TURN, nommé eturnal a été publié. Les services STUN/TURN permettent de mettre en contact des appareils sans connexion directe à Internet, dans un réseau local ou placés derrière un pare‑feu. C’est une version autonome de la partie serveur TURN intégrée dans ejabberd (avec quelques améliorations) et une alternative simple aux serveurs tels que Coturn, qui peuvent être utilisés pour offrir des services STUN/TURN aux clients audio et vidéo utilisant la découverte de services externes telle que définie dans la XEP‑0215.

Bibliothèques

Tigase JaXMPP 3.3.0 a été publié !
Les principales fonctionnalités apportées par cette version sont la prise en charge du chiffrement OMEMO, permettant de mettre en place plus facilement des conversations chiffrées, et la prise en charge de la XEP‑0305 (XMPP Quickstart) permettant d’établir des connexions plus rapidement. En sus, la prise en charge de SCRAM a été étendue à SCRAM‑SHA512. La découverte de services peut maintenant être contrôlée avec la XEP‑0059 (Result Set Management). Les formulaires DataForms comportant plusieurs éléments ont été implémentés et la délivrance de messages dans les salons de discussions a été améliorée. Enfin, la connectivité avec le Firebase Cloud Messaging (FCM) de Google a été corrigée.

La version 1.0.1 de python-nbxmpp, la bibliothèque développée pour et par l’équipe de développement de Gajim, a été publiée. Cette version inclut une correction pour un bogue empêchant de déchiffrer des messages en provenance du client iOS ChatSecure après qu’un certain temps se soit écoulé. Elle comprend également quelques corrections pour les connexions par WebSocket.

La communauté Ignite Realtime est heureuse d’annoncer la sortie de jXMPP version 1.0.0 !

jXMPP est une bibliothèque qui fournit les fonctionnalités communes requises par toutes sortes d’implémentations XMPP (serveurs, clients, composants, etc.). Entre autres choses, elle fournit une implémentation saine des types de JID.
Jetez un œil à sa documentation Javadoc !

Divers

La passerelle whatsxmpp, qui permet de faire communiquer un serveur XMPP avec le site Web de WhatsApp, a vu plusieurs corrections et améliorations ce mois‑ci, principalement via le retour d’utilisateurs ayant remonté des erreurs. L’équipe de développement est passée au gestionnaire de paquets Nix pour construire ses images Docker, avec pour effet de produire des images plus rapidement et de manière reproductible ! La version stable 0.1 se rapproche et les fonctionnalités de base sont déjà utilisables et testées en conditions réelles. Quelques améliorations de stabilité sont encore nécessaires et quelques fonctionnalités, telles qu’une prise en charge correcte de l’historique des salons et le téléversement de fichiers via les serveurs WhatsApp sont manquantes !
Allez faire un tour dans leur salon de discussion whatsxmpp@conf.theta.eu.org si vous êtes intéressé par l’utilisation ou la mise à disposition de cette passerelle.

Google Summer of Code

Depuis début mai, des étudiants du monde entier travaillent sur plusieurs projets libres dans le cadre de cette saison du Google Summer of Code. Nous aimerions présenter les étudiants qui travaillent sur les projets XMPP du GSoC et partager leurs premières entrées de blog :

Aditya Borikar travaille sur la prise en charge de WebSocket dans Smack ; historique de son blog :

Anmol (wolfie_anmol) travaille à l’implémentation de messages en temps réel dans Dino (XEP‑0301 In‑Band Real Time Text) ; historique de son blog :

Activer/Désactiver RTT dans Dino

Merci de votre participation aux projets XMPP du GSoC et continuez votre travail de qualité ! À suivre.

Extensions et spécifications

Mises à jour

  • version 0.7.0 de la XEP‑0313 (Message Archive Management) — TL;DR: ajoute de nouveaux champs de filtrage, permet l’inversion de l’ordre des résultats et migre plusieurs informations vers des documents externes) :
    • ajout des champs before-id et after-id, de l’inversion des pages, de la récupération d’élément unique et d’une nouvelle fonctionnalité disco obligatoire,
    • extrait le protocole des préférences vers un document séparé,
    • extrait les détails des archives PubSub vers un document séparé ;
  • version 1.0.0 de la XEP‑0338 (Jingle Grouping Framework) :
    • évolue vers le statut Brouillon, comme voté par le Conseil le 1ᵉʳ juillet 2020 ;
  • version 0.3.0 de la XEP-0420 (Stanza Content Encryption) — TL;DR: quelques changements concernant les éléments autorisés ou non à être chiffrés, amélioration de sécurité par une plus grande entropie dans les éléments aléatoires de remplissage :
    • autorise les éléments origin-id, interdit stanza-id et les stanze étendues adressant des éléments à l’intérieur de l’élément payload,
    • clarifie la formulation de la section sur les éléments traités dans le cadre d’une stanza et améliore le format de la XEP,
    • lève la limitation du contenu aléatoire de remplissage aux seuls caractères base64,
    • les messages de discussion doivent contenir un indicateur de traitement de stockage des messages,
    • attributions là où des attributions sont nécessaires.

Remerciements

Cette lettre d’information XMPP a été réalisée collaborativement par la communauté. Merci à eta, emus, erszcz, Ge0rG, Holger, kriztan, jerome-poisson, jonas’, Licaon_Kter, pmaziere, vanitasvitae, wurstsalat3000, woj-tek, Zash pour leur aide durant son élaboration !

Diffusez ces informations !

Partagez ces informations sur les « réseaux sociaux » :

Appel à la communauté

Inscrivez‑vous à la lettre d’information

Nous vous invitons à vous inscrire pour recevoir les prochaines éditions en anglais dans votre boîte de courriel dès qu’elles seront publiées ! Diffusez cette lettre d’information à quiconque serait intéressé.

Aidez‑nous à élaborer cette lettre d’information

Nous avons commencé à mettre en place un brouillon à chaque nouvelle édition dans le dépôt GitHub de la XSF.

Et nous sommes toujours ravis d’accueillir des contributeurs et des contributrices. Joignez‑vous à la discussion dans le salon de notre équipe de communication et aidez‑nous ainsi à alimenter cette lettre dans un effort communautaire.

Vous avez un projet et vous écrivez, ou voudriez écrire, à son sujet ? N’hésitez pas à venir partager vos informations ou évènements ici‑même, et diffusez‑les à un large public ! Même si vous n’y passez que quelques minutes, cela sera déjà utile.

Les tâches qui nécessitent d’être réalisées de manière régulière sont, par exemple :

  • l’agrégation des informations de l’univers XMPP ;
  • la reformulation courte des informations et des évènements ;
  • le résumé des communications mensuelles sur les extensions (XEP) ;
  • la relecture du brouillon ;
  • les traductions, particulièrement en français, allemand et espagnol.

Licence

Cette lettre d’information est publiée sous la licence CC BY‑SA 4.0.

XMPP ça marche, 1ᵉʳ juillet 2020

La lettre d’information XMPP est disponible en anglais sur xmpp.org.


N. D. T. — Ceci est une traduction de la lettre d’information publiée régulièrement par l’équipe de communication de la XSF, essayant de conserver les tournures de phrase et l’esprit de l’original. Elle est publiée conjointement sur les sites Linuxfr.org et JabberFR.org. La liste des personnes y ayant contribué est disponible sur Linuxfr.org.


Bienvenue dans la lettre d’information XMPP couvrant le mois de juin 2020.

Vous y trouverez, en plus des nouveautés, un appel à contribuer à la documentation et à la vie de XMPP.


Appel à la communauté

Inscrivez‑vous à la lettre d’information

Nous vous invitons à vous inscrire pour recevoir les prochaines éditions en anglais dans votre boîte de courriel dès qu’elles seront publiées ! Diffusez cette lettre d’information à quiconque serait intéressé.

Aidez‑nous à élaborer cette lettre d’information

Nous avons commencé à mettre en place un brouillon à chaque nouvelle édition dans le dépôt GitHub de la XSF.

Et nous sommes toujours ravis d’accueillir des contributeurs et des contributrices. Joignez‑vous à la discussion dans le salon de notre équipe de communication et aidez‑nous ainsi à alimenter cette lettre dans un effort communautaire.

Vous avez un projet et vous écrivez, ou voudriez écrire, à son sujet ? N’hésitez pas à venir partager vos informations ou évènements ici‑même, et diffusez‑les à un large public ! Même si vous n’y passez que quelques minutes, cela sera déjà utile.

Les tâches qui nécessitent d’être réalisées de manière régulière sont, par exemple :

  • l’agrégation des informations de l’univers XMPP ;
  • la reformulation courte des informations et des évènements ;
  • le résumé des communications mensuelles sur les extensions (XEP) ;
  • la relecture du brouillon ;
  • les traductions, particulièrement en français, allemand et espagnol.

Annonces de la XSF

JC Brand a mis en place un site de publication d’offres d’emploi en lien avec XMPP !
Il vous permettra d’accéder à des offres d’emploi, mais également de faire la publicité de services XMPP.
Jetez‑y un œil, publiez vos propres offres et recommandez‑le. XMPP ça marche !

Articles

Ingo Jürgensmann a écrit un article sur l’historique des termes « Jabber » et « XMPP », leur différences et similarités [en anglais].

Le client XMPP Dino est un des trois projets qui ont été récompensés par le 10^(e) trophée Thomas Krenn [en allemand].

Michał Piotrowski a écrit un article sur comment initier rapidement l’implémentation d’une messagerie instantanée dans une application [en anglais]. Il y aborde la valeur d’une fonctionnalité de discussion dans une application, son passage à l’échelle, sa personnalisation et les erreurs fréquemment commises : « Choisissez vos XEP, et choisissez intelligemment. ».

Le contributeur Space_e_man du site LinuxFr.org a proposé une brève revue de Quicksy, la messagerie instantanée libre basée sur XMPP facile. Tandis que l’article lui‑même se concentre sur les raisons qui devraient le faire préférer à d’autres solutions propriétaires, les commentaires des utilisateurs de LinuxFr.org, comme à l’accoutumée, apportent leur lot de points de vue variés, ainsi que des alternatives.

Vidéos

Au mois d’avril 2020, Conociendo XMPP, la Comunidad Latina de Tecnologías Libres, a fait une présentation en ligne de XMPP pour ses utilisateurs. Nous voudrions mettre en exergue cette vidéo [en espagnol], même si elle date un peu. Ils proposent également un espace de discussion pour les utilisateurs, joignable à cette adresse courte et pratique comunidadlatinadetecnologiaslibres@chat.disroot.org.

Daniel Gultsch et Holger Weiss ont eu un échange virtuel sur leur implémentation des fonctionnalités audio et vidéo [en anglais] au sein de Conversations, dans lequel ils y décrivent les détails techniques. La session a été conclue avec une deuxième présentation par eta, qui définit l’amour par cette équation : Asterisk + XMPP = <3.

Prof. Dr. P. Löbbecke a parlé dans une présentation en ligne de « Freie Messenger – Sichere Kommunikation » (messageries libres — communication sécurisée) [en allemand] qui traite de XMPP.

Des nouvelles des logiciels

Clients et applications

Gajim 1.2.0 a été publié. Plus d’une année après la sortie de Gajim 1.1.3, le moment est finalement venu pour Gajim 1.2. Une année mise à contribution pour développer de nouvelles fonctionnalités, nettoyer du vieux code et corriger des bogues. Parmi tous les changements, on remarquera particulièrement : l’amélioration du système de salon de discussion, la réécriture complète du code touchant les aspects réseau et un nouvel assistant de création de compte. Et il y a bien plus à découvrir.

Nouvelles du développement de Gajim : juin a déjà apporté avec lui Gajim 1.2, python-nbxmpp 1.0 et de nombreuses mises à jour de greffons. Mais il y a plus : Blind Trust Before Verification (confiance aveugle avant vérification) pour OMEMO, des améliorations dans le glisser‑déposer et un nouveau service de traduction pour Gajim.

Anu, le principal développeur de Monal, a publié de nouvelles versions bêta pour iOS et macOS. Grâce aux efforts de Thilo et Friedrich, de nouvelles fonctionnalités de débogage ont été incorporées. Il demande de fournir des journaux de débogage pour les rapports de bogues existants quand cela est possible.

Profanity a sorti sa version 0.9.0, qui prend en charge la XEP‑0308 (Last Message Correction) et corrige divers problèmes qui sont détaillés dans leur publication de blog. Après cette nouvelle sortie majeure, les versions 0.9.1, 0.9.2, 0.9.3 et 0.9.4 ont suivi, corrigeant des bogues.

Captures d’écran de Profanity 0.9

JSXC a sorti sa version 4.1.1, qui corrige plusieurs problèmes liés à la vidéo et améliore l’interopérabilité avec Conversations. De plus, la première version expérimentale d’une application de bureau pour toutes les plates‑formes a été publiée. Le projet recherche des testeurs et des personnes avec de l’expérience sur Electron et la chaîne de compilation Travis.

Desktop client JSXC

Pix‑Art Messenger a supprimé sa prise en charge d’OTR depuis le 30 juin. La note générale à ce sujet peut être lue sur GitHub.

Et pour finir, pouvez‑vous croire cela ? Pidgin 2.14.0 ! 😯 Il y a également une chaîne Twitch de développement en direct qui émet chaque jeudi.

Serveurs

La communauté Ignite RealTime a sorti Openfire bêta 4.6.0 qui implémente la XEP‑0289 (Federated MUC for Constrained Environments) et améliore la prise en charge PEP et PubSub. Si vous avez le temps de tester, rejoignez‑les pour aider !

Bibliothèques

La bibliothèque XMPP de Gajim, python-nbxmpp, a vu sa version 1.0 publiée. Divergence amicale de l’antique bibliothèque xmppy, de nombreuses choses ont changé depuis. Beaucoup de travail y a été investi, particulièrement durant l’année passée. Si vous êtes intéressés, un exemple simple de client est disponible.

Divers

Le saviez‑vous ? League of Legends utilise XMPP en interne.

Google Summer of Code

Depuis début mai, des étudiants du monde entier travaillent sur plusieurs projets libres dans le cadre de cette saison du Google Summer of Code. Nous aimerions présenter les étudiants qui travaillent sur les projets XMPP du GSoC et partager leurs premières entrées de blog :

Aditya Borikar travaille sur la prise en charge de WebSocket dans Smack ; historique de son blog :

Anmol (wolfie_anmol) travaille sur l’implémentation de l’envoi de messages à la volée dans Dino (XEP‑0301 In‑Band Real Time Text) ; historique de son blog :

RTT User Interface

Merci de votre participation aux projets XMPP du GSoC et continuez votre travail de qualité ! À suivre.

Extensions et spécifications

Mises à jour

  • la version 0.5.0 de la XEP‑0373 (OpenPGP for XMPP) :
    • utilise le lexique de la RFC 4880 : il s’agit d’une « clé primaire » et non d’une « clé maîtresse »,
    • clarifie le chiffrement des données de la clé secrète,
    • déplace les informations de l’attribut date vers l’élément ID (fs) ;
  • la version 1.3.0 de la XEP‑0156 (Discovering Alternative XMPP Connection Methods) :
    • corrige la référence à la RFC 6415 et organise les prérequis plus clairement ; ceci fait évoluer le prérequis JSON de « peut » (optionnel) à « devrait » (dans les faits), pour s’adapter aux applications Web (fs) ;
  • la version 1.1.0 de la XEP‑0157 (Contact Addresses for XMPP Services) :
    • ajoute la valeur status‑addresses dans le registre, avec un exemple (mb, fs),
  • la version 0.1.0 de la XEP‑0440 (SASL Channel‑Binding Type Capability) :
    • acceptée par vote du Conseil le 27 mai 2020, (éditeur des XEP (jsc)) ;
  • la version 0.3.1 de la XEP‑0390 (Entity Capabilities 2.0) :
    • ajoute un autre exemple de xml:lang (fs) ;
  • la version 0.6.0 de la XEP‑0384 (OMEMO Encryption) :
    • intègre des retours à propos des termes de chiffrement et du contenu, par Sofia Celi (ps) ;
  • la version 0.3.0 de la XEP‑0424 (Message Retraction) :
    • clarifie quand un service doit rendre publique sa prise en charge via disco,
    • ajoute un autre URN de découverte de service pour les pierres tombales [N. D. T. : nom donné à ce qui remplace le message rétracté] (jcb) ;
  • la version 0.4.0 de la XEP‑0393 (Message Styling) :
    • retire la description du mécanisme pour désactiver la personnalisation du style des spans et des blocks individuels, les utilisateurs pouvant faire cela eux‑mêmes sans que nous ne documentions l’utilisation d’un caractère Unicode qui n’est pas spécifiquement dédié à cela (ssw) ;
  • la version 0.3.0 de la XEP‑0393 (Message Styling) :
    • ajoute la capacité de désactiver la personnalisation des styles, clarifie davantage les aspects d’accessibilité et mentionne que Styling n’est pas compatible avec Markdown dans la section des aspects sécurité (ssw).

Remerciements

Cette lettre d’information XMPP a été réalisée collaborativement par la communauté. Merci à emus, jonas, nyco, pep., pmaziere, sualko, vanitasvitae, wurstsalat3000 et Zash pour leur aide durant son élaboration !

Diffusez ces informations !

Partagez ces informations sur les « réseaux sociaux » :

Licence

Cette lettre d’information est publiée sous la licence CC BY-SA 4.0.

XMPP@home, 9 juin 2020

La lettre d’information XMPP est disponible en anglais sur xmpp.org.

Cette traduction est publiée conjointement sur les sites linuxfr.org et jabberfr.org. La liste des personnes y ayant contribué est disponible sur linuxfr.org.


N. D. T. — Ceci est une traduction de la lettre d’information publiée régulièrement par l’équipe de communication de la XSF, essayant de conserver les tournures de phrase et l’esprit de l’original.


Bienvenue dans la lettre d’information XMPP couvrant le mois de mai 2020.

Vous y trouverez en plus des nouveautés un appel à contribuer à la documentation et à la vie de XMPP.


Appel à la communauté

Inscrivez‑vous à la lettre d’information

Nous vous invitons à vous inscrire pour recevoir les prochaines éditions dans votre boîte de courriel dès qu’elles seront publiées ! Diffusez cette lettre d’information à quiconque serait intéressé.

Aidez‑nous à élaborer cette lettre d’information

Nous avons commencé à mettre en place un brouillon à chaque nouvelle édition dans le dépôt GitHub de la XSF.

Et nous sommes toujours ravis d’accueillir des contributeurs et des contributrices. Joignez‑vous à la discussion dans le salon de notre équipe de communication et aidez‑nous ainsi à alimenter cette lettre dans un effort communautaire.

Vous avez un projet et vous écrivez, ou voudriez écrire, à son sujet ? N’hésitez pas à venir partager vos informations ou évènements ici‑même, et diffusez‑les à un large public ! Même si vous n’y passez que quelques minutes, cela sera déjà utile.

Les tâches qui nécessitent d’être réalisées de manière régulière sont, par exemple :

  • l’agrégation des informations de l’univers XMPP ;
  • la reformulation courte des informations et des évènements ;
  • le résumé des communications mensuelles sur les extensions (XEP) ;
  • la relecture du brouillon ;
  • les traductions, particulièrement en français, allemand et espagnol.

Sorties de logiciels

Cela fait près d’une année que Gajim 1.1.3 est sorti. Une année passée à développer de nouvelles fonctionnalités, à nettoyer du vieux code et à corriger des bogues. Le moment est finalement venu de sortir une première bêta de Gajim 1.2. Entre autres choses, on peut mettre en avant : l’amélioration du système de discussions de groupe, la réécriture complète du code réseau et un assistant de création de compte. Mais il y a beaucoup plus à découvrir.

Connexion :

Gajim 1.2 bêta: création de compte

Inscription :

Gajim 1.2 bêta: création de compte, suite

Création de compte :

Gajim 1.2 bêta: création de compte, resuite

Clients et applications

Nouvelles du développement de Gajim de mai 2020 : de nouveaux badges de compte et une grande révision des greffons. En préparation de la sortie de la v1.2 à venir, de nombreux greffons ont été revus. Testez la nouvelle prévisualisation de documents !

Goffi a publié les notes d’avancement de Salut à Toi pour la semaine 21 !

Poezio a sorti les versions 0.13.0 et 0.13.1 qui nécessitent dorénavant Python 3.7. Ces versions amènent Poezio dans le club des clients prenant en charge OMEMO, et activent le HTTP upload via des greffons dédiés. Jetez un œil à la liste complète des changements pour prendre connaissance de toutes les améliorations de ces versions.

Biboumi, la passerelle XMPP/IRC, a été publiée en version 0.8.5, corrigeant des problèmes de compilation avec GCC 10.

L’outil développé en Python pour l’envoi automatique de fichiers Errol a été mis à jour en version 2.0.1, il modernise ses appels asynchrones d’entrées‐sorties et améliore la protection des données personnelles. En se séparant d’aionotify pour adopter le plus régulièrement maintenu watchdog, Errol étend théoriquement sa compatibilité initiale de GNU/Linux à Windows, macOS et FreeBSD.

Services

blabber.im prend maintenant en charge l’IPv6. Les opérateurs du service ont créé un lien d’invitation qui fonctionne pour leur serveur, mais également pour toutes les autres ID. Si vous avez migré vers un client de messagerie basé sur XMPP, vous pouvez judicieusement placer un lien dans le statut de votre précédent client non‑XMPP. Ce lien offre à vos contacts toutes les informations nécessaires pour qu’ils soient en mesure de vous joindre et, s’ils le désirent, de vous suivre dans le monde de XMPP.

Logo Jabber

jabber.org migre son serveur vers Prosody. Restez informé !

yaxim.org a mis en place de nouvelles mesures anti‑spam. Vous serez peut‑être également intéressés par le « Manifeste Jabber de Lutte contre le pourriel ».

Bibliothèques

La bibliothèque XMPP pour Python 3.7+, Slixmpp, a été mise à jour en version 1.5.0, accompagnées des versions mineures 1.5.1 et 1.5.2. La liste des changements montre des améliorations de nombreuses XEP et la prise en charge préliminaire d’OMEMO.

Un certain temps s’est écoulé depuis la dernière sortie officielle de Smack. Des versions alpha précoces de Smack 4.4 sont maintenant disponibles. Parmi la prise en charge supplémentaire de plus d’une douzaine de nouvelles XEP, la nouvelle version inclura une nouvelle architecture qui rend la gestion des transports modulaire, ainsi qu’une API modifiée qui applique le patron de conception « Monteur » (builder) aux types de stanze.
La date de la sortie finale n’est pas encore connue, mais il est maintenant temps de communiquer vos retours d’expérience pour s’assurer de voir les corrections nécessaires intégrées dans la prochaine version stable de Smack !
Voir la liste détaillée des changements.

Google Summer of Code

Depuis début mai, des étudiants du monde entier travaillent sur plusieurs projets open source dans le cadre de cette saison du Google Summer of Code. Nous aimerions présenter les étudiants qui travaillent sur les projets XMPP du GSoC et partager leurs premières entrées de blog :

Merci de votre participation aux projets XMPP du GSoC et continuez votre travail de qualité ! À suivre.

Extensions et spécifications

Mises à jour

  • la version 0.4.0 de la XEP‑0414 (Cryptographic Hash Function Recommendations for XMPP) :
    • précise que Blake2b-256 DEVRAIT et que Blake2b-512 DOIT (rion) ;
  • la version 1.1.0 de la XEP‑0402 (PEP Native Bookmarks) :
    • ajoute le schéma XML et d’autres modifications éditoriales (mb) ;
  • la version 0.5.0 de la XEP‑0389 (Extensible In‑Band Registration) :
    • réaménagement du document pour sa lisibilité,
    • ajout des informations de JID et nom d’utilisateur à la réponse en cas de succès,
    • toujours nécessiter la fonctionnalité disco/caps,
    • plus d’exemples (ssw) ;
  • la version 1.3.0 de la XEP‑0068 (Field Standardization for Data Forms) :
    • clarifie la gestion du type de champ du champ FORM_TYPE dans les formulaires à soumettre (fs) ;
  • la version 0.2.0 de la XEP‑0436 (MUC presence versioning) intègre le retour de la liste des standards :
    • crée une étiquette séparée pour envoyer le numéro de version,
    • inclut un jeton de remise à zéro,
    • retire la section « mesures supplémentaires » et rassemble ces parties dans « Prérequis »,
    • impose que les présences soient toujours envoyées pour les utilisateurs affiliés (jcb) ;
  • la version 0.2.0 de la XEP‑0437 (Room Activity Indicators) :
    • attribue l’espace de noms urn:xmpp au lieu de l’espace de noms xmpp:prosody.im — cela a été oublié au moment de l’acceptation (éditeur des XEP) (jsc) ;
  • la version 0.1.1 de la XEP‑0438 (Best practices for password hashing and storage) :
    • corrige une référence à un document externe (ssw) ;
  • la version 1.2.0 de la XEP‑0167 (Jingle RTP Sessions) :
    • introduit l’élément <rtcp-mux/> pour signaler la possibilité de multiplexer les données RTP et les paquets de contrôle (dg) ;
  • la version 2.10.0 de la XEP‑0004 (Data Forms) :
    • précise que les champs qui ne sont pas nécessaires peuvent être omis à la soumission (fs).

Proposées

L’éditeur des extensions XMPP a reçu des propositions pour de nouvelles XEP :

Diverses

Expérimentales

  • la version 0.1.0 de la XEP‑0439 (Quick Response) :
    • répond rapidement aux messages automatiques,
    • a été acceptée par vote du Conseil le 22 avril 2020 (éditeur des XEP (jsc)) ;
  • la version 0.1.0 de la XEP‑0437 (Room Activity Indicators) :
    • cette spécification décrit un mécanisme léger pour les notifications d’activités dans les salons,
    • acceptée par vote du Conseil le 15 avril 2020 (éditeur des XEP (jsc)) ;
  • la version 0.1.0 de la XEP‑0436 (MUC presence versioning) :
    • cette spécification définit un mécanisme de gestion de versions qui réduit la quantité de trafic de présence dans un salon défini par la XEP‑0045,
    • acceptée par vote du Conseil le 1^(er) avril 2020 (éditeur de XEP (jsc)).

Brouillons

  • la version 1.0.0 de la XEP‑0320 (Use of DTLS‑SRTP in Jingle Sessions) :
    • élevée au stade de brouillon par vote du Conseil le 20 mai 2020 (éditeur des XEP (jsc)) ;
  • la version 1.0.0 de la XEP‑0339 (Source‐Specific Media Attributes in Jingle) :
    • élevée au stade de brouillon par vote du Conseil le 20 mai 2020 (éditeur de XEP (jsc)).

Remerciements

Cette lettre d’information XMPP a été réalisée collaborativement par la communauté.

Merci à emus, nyco, pmaziere, SouL, vanitasvitae, wurstsalat3000 pour leur aide durant son élaboration !

Diffusez ces informations !

Partagez ces informations sur les « réseaux sociaux » :

Licence

Cette lettre d’information est publiée sous la licence CC BY‑SA.

Appel audio/vidéo sur Android et XMPP

Conversations est sûrement le client XMPP pour Android le plus abouti.
Sa version 2.8 apporte les appels audio et vidéo en 1v1.

Client

Pour l’utilisateur, c’est très simple, une icône de combiné téléphonique a été rajoutée en haut de l’écran. Quand on clique dessus, un menu propose au choix l’appel audio ou vidéo.

Les appels sont chiffrés de bout en bout en utilisant DTLS-SRTP (comme webRTC) et utilisent Jingle pour initier la communication.

De mes tests personnels, la qualité des appels vidéo est bonne. La latence est faible, l’annulation d’echo est performante et permet de parler avec le smartphone au bout du bras.

Par contre en appel vidéo, le téléphone chauffe beaucoup par conséquence l’autonomie diminue grandement. Je ne sais pas si c’est le cas sur d’autres applications d’appel vidéo vu que je n’en utilisais pas avant.

Le gros avantage de Conversations(XMPP), par rapport à Riot(Matrix) c’est qu’il consomme beaucoup moins de batterie en arrière plan et que les notifications sont instantanées sans reposer sur les services Google (Google Push qui nécessite l’installation de Google Play services (propriétaire) avec des permissions étendues et le consentement à la collecte de données par Google)

Par rapport à SIP. tout dépend si on le compare au service Linphone LIME qui peut être chiffré de bout en bout comme ici ou le service OVH où tout passe en clair de bout en bout.

Je ne connais pas d’autres client compatible avec les appels de Conversations pour l’instant.

Serveur

Coté serveur, j’utilise Prosody comme serveur XMPP sur une machine derrière un routeur faisant office de NAT et pare-feu.

Pour une connexion entre 2 clients qui seraient sur le même LAN, il n’y a rien à faire coté serveur.

Mais en pratique, il n’est pas rare que les 2 clients se trouvent derrière des pare-feu interdisant les connexions entrantes. Pour résoudre ce cas, il faut mettre en place un relai de communication sur le serveur.

Pour cela, on va installer un service TURN avec le programme coturn.
Sur Debian :

# apt install coturn

On édite le fichier /etc/turnserver.conf:

use-auth-secret
static-auth-secret=monsecret
no-tcp
external-ip=mondomain.com
realm=mondomain.com

« mondomain.com » correspond au nom de domaine qui permet de joindre le serveur coturn par Internet.
« monsecret » est un mot de passe aléatoire qui permettra de réserver l’usage de ce relai TURN à votre service prosody.

Pour le démarrer, dans le fichier /etc/default/coturn, on active « TURNSERVER_ENABLED=1 »
Puis on lance le service :

# systemctl enable coturn
# systemctl start coturn

Le port du serveur à exposer sur Internet est le 3478 UDP.

Dans Prosody, vous devez activer le module mod_turncredentials. Pour y avoir accès sur Debian Buster, j’ai du installer le paquet des backports.

# apt install prosody-modules -t buster-backports

Dans le fichier de config Prosody /etc/prosody/prosody.cfg.lua vous devez ajouter au modules activés :

"turncredentials";

Puis avant les VitualHosts définir (notez les guillemets en plus par rapport à la config coturn):

turncredentials_host="mondomain.com"
turncredentials_secret="monsecret"

Redémarrer prosody et voila !

Si vous administrez un serveur XMPP, je vous invite à utiliser l’outil de « compliance » de Conversations qui peut vous renseigner sur les XEP qu’il vous serait utile de supporter pour avoir une bonne expérience client.

Remerciements

Le développement de cette fonctionnalité a été possible grâce au financement de NLnet

Vous pouvez donner de l’argent au developpeur principal Daniel Gultsh par LiberaPay

Related Posts:

Compte-rendu d’incident du 22/04/2020 (et suivants)

Après les deux semaines compliquées qui viennent de passer pour JabberFR et la plupart des problèmes résolus, il est temps de faire le point sur la situation ainsi que d’expliquer en détail ce qu’il s’est passé.

Pour les gens qui ne veulent pas le détail technique et horodaté, sachez que tout JabberFR a été déplacé vers un serveur dédié chez Ikoula, quand il était précédemment chez Online depuis 2016, et que tout fonctionne à priori.

Historique

Le 21/04 : Tout à commencé le 21 avril par la dernière faille OpenSSL, qui permet de potentiellement provoquer un crash de service depuis un client en TLS 1.3, ce qui est assez gênant. Nous avons donc planifié une maintenance afin de relancer les services, et par la même occasion redémarrer avec un noyau LTS plus récent. Pour ça nous avons attendu la mise à disposition d’un paquet ArchLinux avec le correctif, qui est arrivé dans la nuit du 21. Une maintenance est planifiée.

Le 22/04 :

  • 13h25 : Un redémarrage du serveur est effectué, à la suite de la mise à jour des différents paquets.
  • 13h35 : Le serveur est toujours indisponible, nous basculons donc en mode « rescue » afin de diagnostiquer le problème
  • 13h35-15h50 : En dehors de quelques problèmes mineurs de fsck rapidement corrigés, nous ne trouvons rien de particulier. Quelques tentatives de reboot infructueuses et nous décidons d’ouvrir un ticket au service client pour éclaircir la situation.
  • 17h50 : Il y a visiblement un problème hardware avec notre disque, nous devons donc faire une sauvegarde, les autoriser à changer le disque, puis une réinstallation.
  • 18h30 : Mise en place d’un serveur temporaire avec l’espace disque suffisant chez Scaleway pour transférer les données, pendant qu’on trie un peu ce qu’on doit garder ou laisser tomber
  • 23h40 : Fin du transfert des données (ironiquement pas limité par la bande passante mais les entrées/sorties disque, les données Prosody étant composées de plusieurs centaines de milliers de fichiers mais faisant seulement 15 Gio, 1,7Gio après compression zstd)
  • 00h10 (le 23) : Demande de changement de disque faite auprès du service client
  • 01h25 (le 23) : Le disque a été remplacé

Le 23/04 :

  • 12h00 : Après avoir tenté en vain de démarrer sur une image ISO spécifique pour faire une installation personnalisée, il est décidé d’installer l’image ArchLinux standard puis de refaire une installation propre en chroot depuis le système de secours.
  • 16h06 : Après avoir fait l’installation, le système ne démarre toujours pas, et nous tombons pile pendant une plage de maintenance planifiée de la « console » online.net (qui contient à la fois les outils d’administration et de contact du support technique)
  • 17h00 : À la vue des nombreux problèmes rencontrés et après une journée complète d’indisponibilité, nous décidons de mettre en place un service temporaire ailleurs pour permettre une continuité de service, nous décidons de prendre une seconde machine temporaire (moins chère car avec moins d’espace disque et de ressources).
  • 18h47 : Le service principal est de retour sur l’IP 51.15.92.143, avec les enregistrements DNS à jour.
  • 20h00 : Le serveur Online est à nouveau disponible, nous mettons en place petit à petit notre installation personnalisée et rapatrions les backups.
  • 21h35 : Nous avions oublié de désactiver la limite de sécurité du nombre de fichiers ouverts par Prosody, qui a été assez vite atteinte, il est donc brièvement indisponible avant de revenir.

Le 24/04 :

  • 15h09 : Fin de la copie des backups, extinction du serveur Scaleway temporaire (utilisé uniquement pour stocker les backups).
  • 18h48 : Prosody arrête de répondre sur le serveur temporaire, suite à un bug dans un module tiers très utilisé, il n’est pas redémarré tout de suite afin d’enquêter sur le problème.

Le 25/04 :

  • 17h05 : L’installation du système est finalisée, mais un problème d’IPMI nous empêche d’y accéder après une demande de redémarrage.
  • 19h45 : Après avoir enchaîné les problèmes de redémarrage et un serveur à nouveau indisponible, la décision est prise de changer d’hébergeur plutôt que continuer avec un serveur plutôt vieux dont l’état matériel ne devrait pas aller en s’améliorant (et faute de trouver une offre équivalente au même endroit). Il se trouve qu’Ikoula avait à ce moment précis une promotion sur son serveur dédié Agile S qui offre la même configuration que celui qu’on avait chez Online, avec un CPU plus récent, la possibilité d’avoir un SSD, et un GPU inutile, pour 1€ de moins TTC.

Le 27/04 :

  • 22h10 : Prosody est à nouveau indisponible à cause d’un bug dans un module tiers. Le module est désactivé pour l’heure.

Du 26/04 au 08/05 : Mise en service progressive du serveur Ikoula, avec restauration des backups, tests, et amélioration de nos processus. Les services web sont les premiers à être remontés, avec un reverse-proxy depuis la machine temporaire. Nous y allons doucement car les jours précédents ont été un peu stressants.

Le 08/05 :

  • Le service est arrêté comme annoncé un peu après 22h, afin de garantir l’intégrité des données sur le nouveau serveur. Les enregistrements DNS sont mis à jour (on avait au préalable mis un TTL de 10 minutes).
  • 22h57 : Le service est lancé sur le nouveau serveur.
  • 23h01 : Le service est relancé avec les bons certificats 😀
  • 23h40 : Prosody est à nouveau en carafe à cause de module tiers, car nous avons oublié de les désactiver sur le nouveau serveur.
  • 23h42 : Le service est à nouveau disponible.

Détails de la nouvelle installation

Nous restons sous ArchLinux, qui est le système que nous savons le mieux administrer et qui nous apporte beaucoup de flexibilité.

En revanche, comme nous étions de toute façon partis pour faire une réinstallation complète dès le 22/04, nous avons décidé de mettre en place une configuration plus complexe mais qui sécurise plus les données de nos utilisateurs tout en nous facilitant la vie.

Après un certain temps passé dans des images de secours fournies par les opérateurs pas forcément aussi utiles qu’on le voudrait, on a également pris la décision de garder un système ArchLinux en clair de 5 Go, qui nous permet de démarrer dessus pendant les phases de maintenance longues, de monter les partitions du système principal voire de kexec dedans afin d’éviter un reboot et/ou des modifications du bootloader en série en cas de panne.

L’idée dès le départ a donc été de mettre en place un système chiffré via LUKS déverrouillable à travers SSH (nécessitant donc une clef SSH et la phrase de passe LUKS). Sous ArchLinux c’est plutôt simple à mettre en place à travers mkinitcpio-systemd-tool (nous comptons documenter un peu mieux la procédure pour pouvoir permettre à n’importe qui de faire de même).

À l’intérieur de ce volume LUKS chiffré, nous avons choisi une partition BTRFS, qui nous permet entre autre de gérer dynamiquement des subvolumes (partitions internes à la partitions, qui peuvent avoir des options différentes telles que de la compression à la volée, déduplication, etc), et qui permet des transferts de partitions incrémentaux sur le réseau plutôt sympathiques, par exemple « ssh serveur btrfs send | btrfs receive » (dd fonctionne aussi mais force à prendre tout l’espace alloué pour la partition, et ne permet pas de le faire en incrémental).

Le système de backups précédent utilisant duplicity était entre autres calibré pour les 100Go de backup FTP fournis par Online, ce qui n’est plus possible, il a fallu donc ré-évaluer nos possibilités. Pour le moment les backups sont donc effectués via borg, vers un espace mis à disposition sur un serveur de mathieui en attendant de prendre une décision, et englobent plus qu’auparavant (intégralité des données de prosody + configurations des logiciels dans /etc + données httpupload) pour un total d’une quarantaine de Go. Ils sont bien sûr chiffrés et la clef n’est pas présente sur le serveur distant.

Nous avons également mis en place etckeeper, plus pour garder une trace des changements (et ne pas les oublier lors de la prochaine réinstallation) que pour s’en servir comme point de restauration ou backup.

Conclusion

Cet incident nous aura permis de constater que la migration est plus simple qu’auparavant, mais qu’il nous faut un moyen de redondance rapide en cas de panne majeure du serveur principal. Les backups plus complets devraient être un bon pas dans cette direction, idéalement nous pourrions périodiquement faire un btrfs send/receive mais cela aurait un coût opérationnel trop important (payer un autre serveur en permanence en plus du principal).

Nous allons prendre le temps de faire des tests dans les semaines à venir pour voir si on peut faire repartir un service opérationnel à partir de ces backups en cas de grosse panne dans des délais raisonnables (en dessous de 2h si possible).

Pour les domaines utilisateurs

Les administrateurs de domaines « utilisateurs » (c’est à dire d’un service qui dont nous avons la gestion du service XMPP mais pas la main sur le DNS) sont invités à mettre à jour leur enregistrement DNS pour un CNAME qui pointe sur jabberfr.org, plutôt qu’un A qui pointerait sur une IP, ou un CNAME qui pointerait vers im/im2.apinc.org.

Dino : client XMPP pour Gnome

Dino est un client libre XMPP pour GNU/Linux qui s’intègre bien avec Gnome.

Je le trouve bien fait. Clair et facile à utiliser. Il gère le chiffrement de bout en bout (OMEMO, OTR) et le partage de fichiers et images fonctionne très bien avec Conversations sur Android.

Pas de chat audio ni vidéo mais pour le reste, ça fait le job.

Related Posts:

Sortie de Dino 0.1

Ceci est une traduction en français de l’article de lancement de Dino 0.1 : https://dino.im/blog/2020/01/dino-0.1-release/

Nous sommes heureux d’annoncer la parution de la première version stable de Dino : la version 0.1. Ceci marque une étape importante du processus de développement commencé il y a trois ans, composé du travail combiné de trente contributeurs, dont quatre étudiants du Google Summer of Code et de multiples sprints de développement.

Dino est une application sécurisée et libre de messagerie instantanée décentralisée. Elle utilise le protocole XMPP (« Jabber ») et est interopérable avec les autres clients et serveurs XMPP. Nous nous efforçons de fournir une interface utilisateur intuitive, simple et moderne.

Fenêtre principale de Dino

Motivation : pourquoi Dino ?

Les applications de chat comme WhatsApp et Facebook Messenger sont faciles à utiliser, et ont donc été adoptées par des milliards de gens. Cependant, elles sont propriétaires et les entreprises derrière elles sont fréquemment critiquées pour malmener les données personnelles de leurs utilisateurs. Un certain nombre d’applications de messagerie instantanée ont été crée avec comme but de fournir une alternative plus respectueuse de la vie privée, comme par exemple Signal et Wire, mais même si elles chiffrent les messages et ont libéré leur code source, leurs utilisateurs doivent toujours accepter un service centralisé, et faire confiance à une entreprise privée.

XMPP est un protocole ouvert pour des communications fédérées. Il existe beaucoup de serveurs publics qui communiquent les uns avec les autres, et n’importe qui peut héberger son propre serveur. Cela fournit une excellente base pour fabriquer un client de messagerie instantanée décentralisé et respectueux de la vie privée. Nombre de clients existent déjà pour le protocole XMPP, cependant Dino vise un public différent. Alors que les clients existants ciblent les power users maîtrisant la technologie, l’écosystème XMPP manque d’un client qui soit agréable à utiliser tout en fournissant les fonctionnalités que les gens attendent d’une application de chat moderne. Dino remplit ce manque en tentant d’être sécurisé et respectueux de la vie privée tout en offrant une excellente expérience utilisateur.

Fonctionnalités

Au premier abord, l’interface utilisateur de Dino ressemble à celle d’autres messageries instantanées populaires qui pourraient vous être familières. Sur le côté gauche, vos conversations ouvertes sont listées, ordonnées de façon à ce que les derniers messages reçus soient toujours en haut. Vous pouvez ouvrir de nouvelles conversations ou rejoindre des salons de discussion avec le menu « + ».

Conversation avec une image embarquée et un fichier attaché dans Dino

Messagerie instantanée et plus

Vous pouvez envoyer des messages à vos contacts ainsi qu’à des groupes privés ou à des salons publics. Dino peut être utilisé en même temps que d’autres clients, ce qui fait que vous pouvez continuer une même conversation sur votre téléphone comme sur votre ordinateur. Les messages que vous envoyez et recevez lorsque Dino était éteint sont synchronisés au lancement.

La recherche de messages de Dino, avec les résultats surlignés

Recherche de message

Dino gère le partage d’images et d’autres fichiers, il peut les transférer via votre serveur ou directement à votre contact, en peer-to-peer et sans limite de taille de fichier.

Une recherche de messages avancée vous permet de rechercher et de filtrer votre historique de messages, globalement ou dans une conversation donnée. Après avoir regardé dans les résultats, vous pouvez sauter à un message pour lire davantage de contexte.

Vous pouvez utiliser plusieurs comptes dans la même interface, pour par exemple séparer facilement votre identité au travail et à la maison.

Securité et vie privée

La fenêtre de gestion des clés OMEMO de Dino

La sécurité a été un point central dans le développement de Dino depuis le tout début. C’est pourquoi nous prenons en charge deux méthodes de chiffrement bout-à-bout directement : le standard de chiffrement bien connu OpenPGP vous permet d’étendre la toile de confiance des mails à XMPP. Le chiffrement à double-ratchet OMEMO fournit un système de chiffrement moderne où chaque client a une confiance spécifique, et est utilisé à grande échelle sur le réseau XMPP.

Nous prenons votre vie privée au sérieux dans chaque détail, par exemple vous pouvez empêcher Dino d’informer l’émetteur d’un message que vous l’avez lu, pour qu’ils ne voient pas la double-check sur leurs messages. Dino vous permet de configurer ses fonctionnalités de vie privée par contact : vous pouvez garder vos meilleurs amis au courant de vos activités tout en ne partageant rien avec les étrangers.

Rapide et bien intégré

Dino n’inclue pas un navigateur web complet avec sa consommation de ressources faramineuse et ses nombreuses potentielles failles de sécurité. À la place, il est une application de bureau native, ce qui lui permet d’être léger et de consommer vraiment peu. Dino s’intègre très bien avec le reste de vos applications et services de bureau.

Prêt ?

Après avoir créé un compte XMPP, vous pouvez contacter d’autres personnes à travers du réseau XMPP globalement connecté. Les adresses XMPP sont de la forme utilisateur@example.com. Vous pouvez vous connecter avec un compte existant ou en créer un nouveau !

Compte-rendu de l’AG de JabberFR du 2019-10-09

Détails de la tenue

  • Date : 2019-10-09
  • Heure de début: 19h30
  • Président de séance : xbright
  • Secrétaire de séance : mathieui
  • Nombre de membres présents : 8

Ordre du jour

  • État des lieux des adhésions
  • Renouvellement du bureau
  • Bilan financier
  • Bilan de l’activité & activités prévues
  • Recrutement d’administrateur⋅ice⋅s

Déroulement

État des lieux des adhésions

On comptabilise 26 adhérents au total, dont environ 8 à jour de cotisation. Le montant des cotisations est plutôt supérieur au montant minimum requis, ce qui est une bonne chose.

Bureau

Le bureau précédent était composé de :

  • elghinn (président)
  • Omega (secrétaire)
  • xbright (trésorier)

Link Mauve et Jérémie étaient eux comptés parmi les administrateurs de l’association.

Un nouveau bureau est donc proposé, composé de :

  • Link Mauve (président)
  • mathieui (secrétaire)
  • xbright (trésorier)

Le nouveau bureau est élu à l’unanimité.

Bilan financier

Il y a à l’heure de l’AG 189.42€ présents sur le compte de l’association.

mathieui paye actuellement les frais d’hébergement, plusieurs pistes pour réduire les coûts sont proposées, qui nécessitent toutefois une simplification de la réinstallation de tous les services et l’import des données.

Bilan d’activité

L’activité de l’association a été principalement de maintenir et faire évoluer le serveur, en configurant ou écrivant les logiciels nécessaires, ainsi que représenter la communauté JabberFR au travers de différents évènements autour du libre, comme les RMLL ou le Capitole du Libre. JabberFR aura un stand au Capitole du Libre à Toulouse en Novembre 2019.

Recrutement d’administrateur⋅ice⋅s

Suite à la demande pour de nouveaux administrateurs (Link Mauve étant devenu président et Jérémie ayant arrêté son implication), Minos se propose et est élu à l’unanimité.

Discussion et questions libres

  • Nicosss suggère d’avoir des bulletins d’adhésion imprimés pour les évènements
  • mathieui propose de passer à helloasso pour gérer les adhésions
  • Arnaud J. fait remarquer l’existence de SimpleAsso qui est libre, mais qui nécessite plus de travail d’intégration
  • Arnaud J. indique qu’il aimerait être administrateur quand il aura du temps libre, c’est dûment noté.

Heure de fin: 20h55

Lettre d’actualité XMPP du 3 septembre 2019

Bonjour à toutes et à tous,
Nous vous proposons aujourd’hui une traduction de la lettre d’actualité initialement publiée sur xmpp.org ce 3 septembre.

Bonne lecture !

Beaucoup d’actualités durant ces deux mois de juillet et août : deux évènements à Lyon et Stockholm (et d’autres bientôt), de nouveaux outils, nouvelles versions de serveurs (Openfire, Ejabberd), beaucoup de nouvelles sorties de clients (Kaidan, Salut à Toi, Xabber Android, Movim, Converse, Beagle IM et Siskin IM). Nous essayons également une nouvelle section dans cette newsletter à propos des XEP, c’est-à-dire les spécifications.

N’oubliez pas de soumettre vos articles XMPP/Jabber, tutoriels ou blog posts sur notre wiki.

Articles

Georg Lukas a publié un article à propos des 10 ans de yaxim !

Marek Foss de ProcessOne, nous raconte dans les détails la façon dont ils ont déployé un geocluster XMPP pour la coupe du monde FIFA au Brézil.

Cyril Brulebois présente comment envoyer des messages HTML avec Net::XMPP (en Perl).

Évènements

Maxime “pep.” Buquet fait le rapport du sprint qui a eu lieu à Lyon en juillet dernier dans les bureaux de Wisolv : DOAP – Description Of A Project, réactions, occupant-id, et bien d’autres.

Le prochain sprint XMPP aura lieu à Stockholm, le weekend du 28 et 29 septembre, dans la municipalité de Nacka.

Quelques hackers XMPP se sont retrouvés à Ziegeleipark, Mildenberg, en Allemagne, en août, pour le Chaos Communication Camp 2019, un camp plein-air organisé par le Chaos Computer Club (CCC) tous les 4 ans, qui rassemble des hackers de nombreux endroits.

Le troisième lundi de chaque mois est tenu le meetup de Bavière. Ce mois-ci ce sera le 16 Septembre (lundi).

Si vous organisez un évènement dans votre ville, n’hésitez pas à le soumettre sur notre wiki.

Nouvelles versions de logiciels

Serveurs

Prometheus XMPP Blackbox Exporter (sous licence Apache 2.0) vous permet de sonder vos services XMPP et d’exporter des mesures de vos sondes sur Prometheus.

La communauté Igniterealtime a annoncé plusieurs sorties de versions :

Antonino Siena a annoncé xmpp-http-upload, un composant HTTP upload pour XMPP simple et efficace (sous licence MIT).

Mickaël Rémond a annoncé Ejabberd 19.08, avec JSON Web Token, un validateur de configuration, amélioration de la montée en charge, et d’autres.

Jérôme “Goffi” Poisson a annoncé SàT PubSub 0.3.0, un composant XMPP PEP/PubSub indépendant, qui a pour but d’être complet et universel.

Clients

Kaidan 0.4.0 et 0.4.1 sont sortis, et sont disponibles en téléchargement pour Linux, Windows, et macOS (et expérimental sur Android et Ubuntu Touch).

Jérôme “Goffi” Poisson a sorti Salut à Toi v0.7 « La Commune » avec des tonnes de changements (et il publie des notes de progrès régulières).

Xabber Android 2.6.4 (634) est sorti sur Google Play, et améliore la synchronisation avec l’archive, le temps de démarrage, apporte la prise en charge des références dans les messages (fichiers, suivis, balisage (gras, italique, etc.), mentions, citations), des paramètres pour la compression d’image, des changements visuels, et d’autres.

Timothée Jaussoin a sorti Movim 0.15 – Donati, avec le support des réactions, partage de publication, et plus.

JC Brand a sorti Converse, le client web de chat basé sur XMPP/Jabber, en versions 5.0.0 et 5.0.1, avec beaucoup d’améliorations.

Wojciech Kapcia, de Tigase, a annoncé deux versions de Beagle IM pour macOS et Siskin IM pour iOS.

Bibliothèques

Lance “legastero” Stout a sorti StanzaJS (anciennement connu en temps que Stanza.io), la bibliothèque XMPP JS avec une API JSON, en plusieurs versions 12.x.

JC Brand a sorti la version 1.3.4 de la bibliothèque strophejs.

Florian “Flow” Schmaus a annoncé une extension de la bibliothèque jXMPP avec un framework de test pour “XMPP-Strings”, ainsi que Smack 4.4.0-alpha2.

Services

Arc Games a malheureusement annoncé fermer son service XMPP : « À partir du 19 septembre 2019, Star Trek Online ne supportera plus les connections à notre système de chat interne via un client XMPP. »

Extensions et spécifications

Nous commençons avec les XEPs en LAST CALL (« dernier appel »), puisque ce sont celles avec la plus grande priorité en termes de retour d’information. Nous continuons avec les nouvelles XEPs pour vous faire part de leur existence, et ensuite les XEPs obsolètes, pour que vous puissiez les remplacer progressivement. Nous finissons avec les mises-à-jour. Une dernière section : les spécifications amies.

Last Call

XEP-0353: Jingle Message Initiation

Titre : Jingle Message Initiation

Abstract: This specification provides a way for the initiator of a Jingle session to propose sending an invitation in an XMPP message stanza, thus taking advantage of message delivery semantics instead of sending IQ stanzas to all of the responder’s online resources or choosing a particular online resource.

URL: https://xmpp.org/extensions/xep-0353.html

This Last Call begins today and shall end at the close of business on 2019-08-13.

XEP-0300: Use of Cryptographic Hash Functions in XMPP

Titre : Use of Cryptographic Hash Functions in XMPP

Abstract: This document provides a common wire format for the transport of cryptographic hash function references and hash function values in XMPP protocol extensions.

URL: https://xmpp.org/extensions/xep-0300.html

This Last Call begins today and shall end at the close of business on 2019-08-13.

Nouvelles XEPs

XEP-0421: Anonymous unique occupant identifiers for MUCs

Version 0.1.0 of XEP-0421 (Anonymous unique occupant identifiers for MUCs) has been released.

Abstract: This specification defines a method that allows clients to identify a MUC participant across reconnects and renames. It thus prevents impersonification of anonymous users.

Changelog:
Accepted by vote of Council on 2019-07-17. (XEP Editor (jsc))

URL: https://xmpp.org/extensions/xep-0421.html

XEP-0420: Stanza Content Encryption

Version 0.1.0 of XEP-0420 (Stanza Content Encryption) has been released.

Abstract: The Stanza Content Encryption (SCE) protocol is intended as a way to allow clients to securely exchange arbitrary extension elements using different end-to-end encryption schemes.

Changelog:
Accepted by vote of Council on 2019-06-26. (XEP Editor (jsc))

URL: https://xmpp.org/extensions/xep-0420.html

XEPs Obsolètes

XEP-0387: XMPP Compliance Suites 2018

Version 1.0.0 of XEP-0387 (XMPP Compliance Suites 2018) has been released.

Abstract: This document defines XMPP protocol compliance levels.

Changelog:
Move to Draft as per Council vote on 2018-01-24. (XEP Editor (jwi))

URL: https://xmpp.org/extensions/xep-0387.html

XEPs mises à jour

  • Version 0.3.0 de XEP-0414 (Cryptographic Hash Function Recommendations for XMPP)
  • Version 1.1.0 de XEP-0368 (SRV records for XMPP over TLS)
  • Version 0.3.0 de XEP-0380 (Explicit Message Encryption)
  • Version 1.4.0 de XEP-0184 (Message Delivery Receipts)

Spécificationss amies

Celle-ci peut intéresser la communité ; c’est en Last Call à l’IETF actuellement : https://datatracker.ietf.org/doc/draft-ietf-tls-sni-encryption/

SàT PubSub 0.3.0 est disponible

La version 0.3.0 de SàT Pubsub est disponible.

SàT PubSub est un service XMPP PEP/PubSub indépendant du serveur, qui vise à être complet et universel.

Ce projet est né du constat qu'il est difficile d'avoir des services PEP/PubSub complets sur tous les serveurs XMPP, et que même si c'est le cas ils peuvent tarder à implémenter de nouvelles fonctionnalités ou être difficiles à gérer.

Le projet « Salut à Toi » faisant un usage intensif des fonctionnalités PubSub de XMPP, 2 solutions étaient envisageables :

  • se concentrer sur un serveur XMPP particulier et le recommander, voire le faire évoluer dans la direction voulue. Ceci reviendrait à se bloquer sur une implémentation particulière d'un serveur XMPP et risquer de voir des fonctionnalités fonctionner incorrectement ou pas du tout sur les autres.

  • faire un composant indépendant du serveur, en utilisant des extensions XMPP pour avoir un accès privilégié au serveur

C'est la deuxième option qui a été retenue, SàT PubSub utilise les XEPs (extensions XMPP) Namespace Delegation (XEP-0355) et Privileged Entity (XEP-0356) pour pouvoir fournir des fonctionnalités avancés et PEP.

Bien que « SàT » soit utilisé dans le nom (par son origine), ce composant ne nécessite pas d'utiliser Salut à Toi et peut-être utilisé par tout logiciel XMPP.

SàT PubSub implémentait déjà MAM et RSM (permettant de faire des recherches dans les archives et d'utiliser la pagination pour retrouver les éléments), la version 0.3.0 apporte également :

  • le modèle d'accès presence
  • la gestion de +notify
  • la notion d'administrateurs, qui sont des identifiants (« JID ») avec des accès privilégiés
  • les affiliations
  • la possibilité de retrouver les éléments classés par date de création ou modification avec Order-By (XEP-0413)
  • la fonctionnalité expérimentale « Node Schema », pour associer des types de données à un nœud via les Data Forms (XEP-0004). Cette fonctionnalité est notamment utilisée dans Salut à Toi pour les tickets.
  • la fonctionnalité expérimentale « Serial IDs » qui permet d'attribuer des identifiants d'éléments utilisant des incréments (1, 2, 3, etc.) au lieu de valeurs aléatoires. Ceci est notamment utile pour les tickets.
  • la fonctionnalité expérimentale « PubSub Admin », qui permet aux administrateurs de publier des éléments en spécifiant un autre éditeur (« publisher »). Peut-être utilisé pour restaurer une sauvegarde.
  • la fonctionnalité expérimentale « consistent publisher » qui, une fois activée sur un nœud, garde l'éditeur (« publisher ») original quand un élément est modifié par le propriétaire du nœud ou un administrateur. Ceci permet de modifier l'élément sans empêcher l'éditeur original de le modifier à nouveau lui-même (par exemple en éditant un commentaire de blog, ou en changeant le statut d'un ticket).
  • un fichier de configuration peut désormais être utilisé avec SàT PubSub, évitant d'avoir à spécifier les options – dont le mot de passe – entièrement sur la ligne de commande. Le même fichier que pour Salut à Toi (sat.conf) est utilisé, les options de SàT PubSub doivent être mises dans la section [pubsub]).
  • une nouvelle documentation

Vous trouverez plus de détails dans le CHANGELOG.

Le développement sur la version 0.4 a déjà commencé avec le port pour Python 3 qui est fonctionnel et complète le reste de l'écosystème Salut à Toi.

Pour installer SàT PubSub, il vous suffit d'entrer pip install sat_pubsub dans un environement virtuel Python 2, référez-vous à la documentation pour plus de détails.

Salut à Toi v0.7 « La Commune »

Salut à vous,

c'est avec plaisir et un certain soulagement que je vous annonce la sortie de « Salut à Toi » v0.7 (La Commune).

Pour mémoire « Salut à Toi » (ou SàT) est un écosystème de communication décentralisé, basé sur le standard établi « XMPP ».
Il vous permet de faire de nombreuses choses (messagerie instantanée, partage de fichiers, blogage/microblogage, événements, forums, etc.) et a la particularité d'être multi-interfaces (différents « frontaux » sont disponibles pour le web, le bureau, les appareils mobiles, ou encore le terminal et la ligne de commande).

La préparation de cette version aura pris 3 ans, c'est la première version dite « grand public », autrement dit qui est utilisable par un public qui n'est pas forcément technique, même s'il y a encore des améliorations à faire au niveau de l'interface et l'« expérience utilisateur ».

Il n'est pas question de refaire une longue énumération de fonctionnalités avec captures d'écrans, vous pouvez vous référer à l'annonce de la version alpha pour ceci. Je vais plutôt expliquer certaines nouveautés majeures :

Cagou, l'interface bureau/appareils mobiles

Promis suite à notre modeste campagne de financement participatif, Cagou est le nom du nouveau frontal bureau/appareils mobiles (Android uniquement pour le moment). Pour la petite histoire, c'est une référence à un superbe oiseau qui ne vole pas et aboie, endémique à la non moins superbe Nouvelle-Calédonie, mais aussi un clin d'œil à Kivy, le cadriciel que nous utilisons et dont le nom et logo rappellent le Kiwi de la Nouvelle-Zélande.

Cette interface est donc multi-plateformes, et ne se contente pas de la messagerie instantanée : vous pouvez vous en servir pour transférer des fichiers (par exemple vos films/photos entre votre téléphone et votre ordinateur de bureau), ou comme télécommande pour votre lecteur de médias. Il est bien entendu prévu qu'il gère également le blogage dans un avenir proche.

Cagou est pensé pour être utilisable aussi bien sur un petit écran qu'en plein écran sur un grand moniteur de bureau, et permet de diviser facilement l'écran en zones pour, par exemple, suivre plusieurs salons de discussion en même temps.

Sur Android l'application souffre encore de quelques problèmes de lenteur et même parfois de plantages. Plusieurs problèmes seront corrigés avec le port sur Python 3, aussi considérez cette version comme un premier jet qui permet d'avoir vos commentaires et suggestions.

Cagou sur Android

Chiffrement de bout en bout

Bien que SàT gère le chiffrement de bout en bout depuis plusieurs années via « OTR », cette version voit l'arrivée d'« OMEMO », un algorithme palliant des défauts du précédent (il permet notamment d'envoyer des messages chiffrés hors ligne, ou de les afficher sur plusieurs appareils). OMEMO n'est implémenté qu'en conversation simple (dites « 1:1 », entre 2 personnes) pour le moment, mais la prochaine version verra certainement la gestion des conversations de groupes chiffrées de bout en bout.

Événements, album photos, forums, gestion de tickets, requêtes de fusion

De nombreuses fonctionnalités font leur apparition. Vous pouvez désormais créer et gérer des événements (familiaux par exemples), avec une classique liste d'invités et de réponses types « RSVP » (je viens, je ne viens pas, je viens peut-être). Il est possible d'inviter des gens même s'ils ne sont pas sur le réseau XMPP en utilisant des comptes « invités » générés automatiquement et envoyés à des adresses de courriel.

Vous pouvez créer et partager des albums photos, une spécialisation du partage de fichiers. La création n'est pas encore disponible depuis les interfaces graphiques, c'est une amélioration à prévoir rapidement, la consultation par contre est simple depuis Libervia (l'interface web).

Un forum basique est également de la partie, ainsi qu'une gestion des tickets et requêtes de fusion (« merge requests »). Ces 2 dernières fonctionnalités ont été implémentées pour les besoins du projet, mais elles sont très souples et pourront (dans une prochaine version) facilement être utilisée dans la vie courante (par exemple pour des listes de courses ou de choses à faire).

Tout ceci tire parti des capacités de publication/abonnement (ou « PubSub ») de XMPP, et peuvent profiter de son système de permissions (on peut ainsi imaginer une liste de courses partagée entre les membres de la famille, pour indiquer qui a pris quoi).

À noter que pour en profiter il est actuellement nécessaire d'utiliser le service PubSub « SàT Pubsub », un project fait pour les besoins de Salut à Toi (mais utilisable par tout logiciel XMPP).

un blog sur Libervia

album photo sur Libervia

Cadriciel (framework) web

Le développement de Libervia, le frontal web, l'a mené à devenir un cadriciel (ou « framework ») web. La raison de cette évolution est qu'il fallait une interface très souple, permettant d'implémenter et tester facilement de nouvelles idées ou fonctionnalités. Le but est d'avoir un cadriciel naturellement décentralisé et fédéré (parce que basé sur XMPP), qui s'intègre simplement dans l'écosystème. Je passe rapidement sur les détails techniques, mais il s'agit de lier le moteur de rendu Jinja2 avec SàT et d'utiliser PubSub comme base de données. En outre, le frontal en ligne de commande (jp), permet d'utiliser les même modèles pour faire un rendu statique (par exemple pour générer un blog statique ou des archives d'un salon de discussion).

C'est avec ce cadriciel qu'ont été développées les fonctionnalités mentionnées ci-dessus, elles sont organisées en « pages » qui se veulent simple d'utilisation et peuvent fonctionner sans javascript (quand c'est possible, ce qui n'est pas le cas pour le « chat »). C'est grâce à lui que fonctionne le nouveau site officiel où vous trouverez une documentation d'introduction.

mais encore

Je ne vais pas trop m'étendre, les nouveautés sont trop nombreuses, mais il vaut tout de même la peine de mentionner que SàT peut également être utilisé pour stocker vos fichiers sur le serveur (il peut être utilisé en tant que « composant »), ou que jp, le frontal en ligne de commande permet de gérer beaucoup de choses (retrouver ou publier un article de blog, envoyer un message chiffré ou non, retrouver l'avatar de quelq'un, etc.).

Installation

Salut à Toi est disponible dans Debian et ses dérivées, mais attention c'est le cas seulement pour le backend, et les interfaces console et ligne de commandes, de l'aide serait d'ailleurs apprécié pour empaqueter Cagou (interface bureau/appareils mobiles) et Libervia (interface web).

Il est également disponible sur les dépôts AUR d'Arch Linux, et sur cette distribution il existe des paquets pour installer les versions de développement.

Des paquets Flatpak permettent une installation aisée de Cagou, Primitivus (console) et jp (ligne de commande) sur la plupart des distributions GNU/Linux, vous trouverez les liens sur la page principale du site.
Vous pouvez bien sûr aussi utiliser pip, le gestionnaire de paquets de Python. Un simple pip2 install --user sat suivit d'un pip2 install --user cagou voire d'un pip2 install --user libervia devrait suffire. Les instructions sont disponibles dans la documentation du site.

Pour Android, vous trouverez un Apk sur ce lien. Je vais faire les démarche pour le rentre disponible sur F-Droid, et éventuellement le « play store ».

Bien que SàT devrait techniquement fonctionner sur Mac OS X, Windows et les *BSD, il n'est pas testé sur ces plateformes (car je ne les ai pas à disposition). J'ai eu quelques retours sur Mac. Si des personnes sont intéressées, une aide pour tester et empaqueter serait plus que bienvenue.

Avenir

La principale chose attendue pour la 0.8 est le port sur Python 3, il est enfin possible maintenant que plus aucune dépendance ne bloque, et c'est la seule chose certaine pour la version à venir. Plusieurs grosses pistes sont envisagées ensuite et il va falloir faire des choix, n'hésitez pas à donner votre avis/préférence en commentaire.

Visioconférence

Jingle étant déjà implémentée, la visioconférence est prévue de longue date. Elle ne devrait pas être trop difficile à implémenter pour l'interface web (grâce à WebRTC), mais demandera certainement plus de travail sur bureau/Android (évaluer les différentes options, GSTreamer étant le candidat envisagé pour le moment, et intégrer ça à Cagou). C'est un chantier important.

Améliorer le partage de fichiers

SàT propose déjà un partage de fichiers avancé (plus qu'un simple envoi de fichier sur le serveur), incluant un composant serveur. Il est fort possible que des développements continuent dans cette direction.

partager un répertoire avec Cagou

Version iOS

Il serait techniquement possible de porter Cagou sur iPhone. Il y a plusieurs obstacles à cela, notamment juridique (l'Apple store n'est pas compatible avec la licence actuelle, AGPL 3+). IL faudrait également du matériel dédié, et du temps. Ce n'est clairement pas la priorité, mais sachez qu'une version iOS est envisageable.

Passerelle ActivityPub

Avec cette version, SàT peut désormais être utilisé en « composant », c'est-à-dire un service côté serveur. Cette possibilité peut être mise à profit pour créer une passerelle ActivityPub, ce qui permettrait de communiquer dans les 2 sens avec les projets utilisant ce protocole. Il y a déjà un projet en cours de passerelle XMPP pour Prosody, aussi je vais certainement attendre de voir son évolution avant de me lancer moi-même.

Évolution de la messagerie instantanée

Bien que déjà fonctionnelle, la messagerie instantanée peut devenir très complète si on y consacre du temps. Il s'agirait d'ajouter les quelques fonctionnalités manquantes (réactions, correction du dernier message), d'améliorer la gestion des fichiers, des copier-collers des morceaux de code, d'implémenter le chiffrement de bout en bout en groupe, etc. Tout ceci est prévu, la question est de savoir si on en fait la priorité ou pas.

Amélioration de l'utilisabilité

C'est probablement le chantier qui sera prioritaire une fois le port Python 3 effectué. SàT est déjà bien fourni en fonctionnalité, mais les interfaces ont besoin de travail pour être facilement utilisable. J'aimerais en particulier travailler sur le lancement de l'application et la découverte de contacts. Il y a également beaucoup de « petits détails » qui accumulés prennent du temps mais rendent le logiciel beaucoup plus agréable : intégration au bureau, aux actions de partage, une sélection plus agréable des fichiers, etc.

Voilà pour les pistes envisagées, chacune demande du temps et encore une fois vos commentaires/avis sont les bienvenus. Il y a d'autres idées qui traînent, aussi il va falloir bien choisir les priorités.

Mais…

Salut à Toi est un gros projet qui a un potentiel, mais il est pour le moment développé par une seule personne. Je n'ai qu'un jour par semaine consacré à SàT, et le rythme est très difficile à tenir. Dans les mois qui viennent je vais étudier les options de financement du projet. Il va être nécessaire que je trouve une solution à moyen terme pour que ce projet reste sur les rails.

Liens utiles

  • site officiels: https://salut-a-toi.org
  • documentation: https://salut-a-toi.org/documentation
  • notes de progression (en anglais): https://www.goffi.org/tag/S%C3%A0T%20progress

Nouveau sprint, nouveaux goodies

Ceci est une traduction de l’article en anglais New sprint, new goodies. La date originale de l’article est le 17 Juillet 2019.

Ce weekend du 14 juillet, un groupe d’enthousiastes s’est rassemblé pour travailler sur de nouvelles fonctionalités dans les différentes implémentations d’XMPP. Wisolv — société de développement sur mesure — nous a généreusement fourni ses locaux à Villeurbanne (à coté de Lyon).

Sur l’ensemble, nous avons réussi à faire pas mal de choses et sommes bien contents du résultat. Au programme : DOAP, Message Reactions, Occupant-id, divers corrections de bugs et discussions, sans oublier quelques progrès sur le client Jabber pour Haiku !

Feux d’artifice du 14 Juillet par olek_impek.

DOAP – Description Of A Project (Description d’un projet)

Il existe beaucoup de listes de logiciels XMPP. Celles-ci ne prennent en considération que les fonctionalités favorites de leur auteur, sont plus ou moins à jour, et en général pas compréhensibles par les machines. Le projet DOAP fournit un moyen à chaque projet d’héberger une description sémantique de celui-ci, qui peut ensuite être utilisé pour présenter des informations sur les logiciels XMPP.

Quelques années plus tôt, Link Mauve a soumi une proposition pour étendre le format DOAP avec des informations que ces listes souhaitent exposer, mais il n’a pas sucité beaucoup d’intérêt… jusqu’à ce sprint !

PulkoMandy a écrit un ensemble de feuilles de style XSLT pour présenter ces informations. Link Mauve a écrit un schéma XML ainsi qu’un script Javascript intégrant les informations directement sur les XEPs (vous pouvez en voir un exemple ici avec la XEP bookmarks). Tous les auteurs de clients présents au sprint ont écrit un fichier DOAP pour leur projet.

Reactions

Movim a été un des premiers clients à implémenter les réactions, en utilisant la spécification Message Attaching. Les développeurs de Dino pensaient pouvoir améliorer la situation, notamment certains problèmes avec les clients qui n’implémentent pas la XEP, ce qui les a poussé à écrire une nouvelle spécification il y a déjà plusieurs semaines. Cette protoXEP a été envoyée dans l’inbox ce weekend !

Edhelas a adapté son implémentation dans Movim en utilisant cette nouvelle spec, mathieui a travaillé sur Poezio (pas encore mergé, mais les changements dans Slixmpp le sont), et fiaxh et larma ont commencé à l’implémenter dans Dino.

Occupant-id

Occupant-id est un autre protoXEP qui a été soumise ce weekend par larma.

Elle spécifie que les composants MUC fournissent un identifiant stable et unique qui serait attribué par salon par utilisateur (bare real JID). Ceci est utile en particulier pour les salons semi-anonymes où il n’est pas possible de s’assurer que deux messages viennent du même participant entre deux reconnections.

Certaines applications client pensent déjà la demander dans les salons semi-anonymes pour des fonctionalités telles que Last Message Correction ou Reactions.

Un module prosody est aussi disponible et fonctionne avec la dernière version (0.11) ou trunk.

Encore plus

PulkoMandy a commencé à porter Jabber4Haiku — maintenant Renga — à gloox. Fiaxh a travaillé sur stable and unique IDs dans Dino. Slixmpp utilise enfin des ids non prévisibles. J’ai travaillé avec mathieui sur des problèmes sur l’API asynchrone de Poezio et Slixmpp. Une nouvelle version de xmpp-parsers est sortie, corrigeant les problèmes dans la documentation au passage !

La suite

J’aimerais remercier Wisolv une fois de plus de nous avoir hebergé ce weekend.

Le mois prochain des membres de la communauté seront présent au booth XMPP à FrosCon, ainsi qu’à CCCamp2019. Venez visiter notre page d’évènements pour plus d’informations sur nos activités !

SàT 0.7.0 vient d'entrer en bêta

La version « 0.7.0 beta 1 » de Salut à Toi vient de sortir. En d'autres termes, nous venons de commencer la phase bêta, il n'y aura plus de nouvelles fonctionnalités (sauf ajustements mineurs), et maintenant il s'agit de se concentrer sur la stabilité, le débogage, et l'utilisabilité.

Pour mémoire, « Salut à Toi » est un écosystème de communication libre, décentralisé, et éthique. Il propose de nombreuses fonctionnalités (messagerie instantanée, chiffrement de bout en bout, blog, partage de fichiers, événements, forums, etc.), et fonctionne nativement sur bureau, appareils mobiles (Android), sur le web, et sans interface graphique (interface console et en ligne de commande).

C'est un soulagement de passer cette étape après l'énorme travail depuis la dernière version (0.6.1), sortie il y a plus de 2 ans 1/2 !

Maintenant c'est à vous de jouer, il faut tester, remonter les problèmes (sur https://bugs.goffi.org ou sur le salon du projet, aussi accessible via le web), et faire vos suggestions, c'est le moment !

Si vous connaissez Python, je cherche des personnes pour m'aider à rendre le project installable sur Windows, Mac OS et *BSD. Je travaille également sur un paquet flatpak. La partie web serait intéressante à avoir sur Yunohost, là encore de l'aide serait appréciée (cf. travail commencé).

Notez que SàT est déjà disponible sur Debian et probablement derivés (la bêta n'y est pas encore par contre), ainsi que sur Arch Linux (utilisez les paquets sat-*-hg pour tester la bêta).

Les instructions d'installation sont disponibles dans la documentation, et je travaille sur un nouveau site web qui en affichera un rendu plus agréable à lire, il devrait être en ligne dans la semaine.

Voici les liens pour les fichiers d'installation, et vous trouverez la plupart d'entre eux sur Pypy (notez que vous devez parcourir « release history » pour voir la version bêta) :

Je fini avec une capture d'écran de la version Android de Cagou, notez que ce blog est également fait avec ce projet :

capture d'écran de Cagou v0.7.0b1 sur Android

Salut à Toi au FOSDEM ce week-end

Salut à Vous,

une petite note pour vous indiquer que je serai présent au FOSDEM et que j'y ferai 2 conférences:

  • « XMPP Beyond Instant Messaging » où je montrerai qu'XMPP est bien plus qu'un protocole de messagerie instantanée. Salle H.1309 (Van Rijn) dimanche à 9:25
  • « Salut à Toi: A Python Based Social Network And More » qui sera une présentation de l'écosystème Salut à Toi. Salle UD2.120 (Chavanne) dimanche à 16:00

Je serai régulièrement au « XMPP lounge », mais je compte aussi voir certaines conférences et autres stands, aussi n'hésitez pas à me pinguer sur le salon XMPP sat@chat.jabberfr.org (accessible également via ce lien) si vous souhaitez discuter et/ou une démonstration.

Salut à Toi est en cours de stabilisation, et la version 0.7 à venir verra l'arrivée de la nouvelle interface bureau/appareils portables (Android en particulier), du partage de fichiers avancé, des événements, de la base d'une forge décentralisée (tickets et « merge requests »), du chiffrement via OMEMO, etc.

À noter aussi l'arrivée d'un cadriciel (framework) web unique en son genre, puisqu'il permet de créer des sites naturellement décentralisés en liant XMPP et Python.

Au plaisir de vous voir !

Salut à Toi à la Pycon à Lille dès demain

Pour les libristes habitant près de Lille, je serai à la Pycon cette semaine avec 2 jours de sprint autour de « Salut à Toi », puis une conférence le samedi à 16:30.

Si vous n'allez pas à la Pycon (et même si vous y allez ;) ), on peut aussi se voir pour une petite bière dans le vieux Lille en soirée. Bref n'hésitez pas à me contacter si vous voulez parler décentralisation, réseaux « sociaux », XMPP et/ou politique !

Slack now concentrates HipChat and Stride users

This has been announced, as a partnership between Slack and Atlassian. HipChat and Stride users will be migrated to Slack. End of this story.

Slack-HipChat-Stride

Most of the too many Team Chat actors will disappear thanks to darwinism applied to IT ecosystem. With Slack consolidating its leadership on the market, the natural selection will accelerate.

Most of the Team Chat players joined the bandwagon, because it is the first generation of Instant Messaging that monetises. Most of the Team Chat players only cloned a subset of what makes Slack pretty good, none have really innovated on top of it.

So, we see one more massive centralisation of users, under a proprietary silo, that is not even reliable…

Salut à Toi 0.7 alpha, contributrices, contributeurs, à vos claviers !

C'est avec plaisir que je vous annonce la sortie de la première version alpha de Salut à Toi 0.7. Cela permet d'une part de vous montrer l'état, les avancées et l'orientation du projet, mais aussi de faire un appel à la contribution. Je vais dans la suite de cet article vous présenter une partie des capacités de Salut à Toi, ainsi que vous expliquer briévement comme les utiliser.

Vous trouverez un lien vers un fichier .apk pour tester sur Android dans la section « Testez ! ».

Pour mémoire, Salut à Toi est un écosystème collaboratif, multi interfaces (web, bureau, appareils portatifs, terminal, ligne de commande), multi-plateformes, et multi-usages. Il permet de gérer vos communications, de vous organiser, de partager vos fichiers, etc. C'est aussi, et avant tout un projet engagé qui prend en compte l'impacte des nouvelles technologies sur nos vies, et qui cherche à stimuler le débat public.

Nous allons nous concentrer sur les interfaces Web, et bureau/appareils portatifs, car ce sont celles qui sont les plus susceptibles d'intéresser le plus grand nombre.

Interface web (appelée « Libervia »)

Libervia a entamé des changements très importants, avec l'apparition d'un cadriciel (« framework » en anglais) web.

L'idée, expliquée dans un billet de blog est de fournir les composants de base (comptes et authentification, permissions, commentaires, etc.) directement utilisables et décentralisés grâce à XMPP. On construit ainsi facilement des sites automatiquement décentralisés et fédérés.

Notez que tout est prévu pour la traduction dans différentes langues, mais que pour l'instant seul l'anglais est disponible. De l'aide serait grandement appréciée pour améliorer cela !

Voyons les fonctionnalités déjà disponibles :

Chat

capture d'une discussion avec le « chat » de Libervia

Probablement le plus évident, il y a une application de messagerie instantanée. Pour l'utiliser il faut cliquer sur « Chat », et vous connecter si ce n'est pas encore fait.

Vous arrivez alors dans un panneau indiquant les salons contenus dans vos marque-pages, il vous suffit de cliquer sur l'un d'eux, ou d'indiquer l'identifiant (jid) d'un nouveau salon. C'est pour le moment assez basique, vous pouvez toutefois entrer « /help » pour avoir accès à liste des commandes textuelles.

Blog

mon blog, qui tourne avec Libervia Une des fonctionnalités phares de SàT, et peu courante dans le monde XMPP (le seul client activement développé le permettant également étant Movim), est le blog (qui est donc décentralisé).

Un clique sur le menu vous amènera sur une page de « découverte » où vous pourrez voir vos contacts ayant un blog. Cliquez sur l'un d'eux pour le lire, ou indiquez un identifiant pour en lire un qui n'est pas dans vos contacts.

Forums

un forum décentralisé qui tourne sur XMPP

Fonctionnalité unique dans le monde XMPP, SàT propose un système de forums, qui permet en pratique d'organiser des discussions dans des catégories. Les forums étant en arrière plan la même chose que les blogs, il est possible d'utiliser un blog comme forum et vice versa.

La création de forums se fait par un ou une administrateur/ice en ligne de commande avec l'outil « jp » (voir ci-dessous).

Événements

la liste personnelle des événements

Autre fonctionnalité unique dans le milieu XMPP (et en décentralisé ?), SàT permet de créer des événements, et bien sûr d'y inviter du monde.

Comme pour les autres fonctionnalités, la page est prévue pour être simple à utiliser : vous avec un bouton « créer un événement », qui vous mène à un formulaire. Un nom, un lieu et une date plus tard (et éventuellement une photo pour le représenter), et votre événement est créé. Vous arrivez alors sur la page d'administration où vous pouvez indiquer les personnes à inviter.

Les événements sont pour le moment privés, uniquement vous et vos invités y ont accès, mais des événements publiques sont prévus.

un invité répond à la demande RSVP d'un événement

À noter qu'il est possible (mais pas encore depuis l'interface web) d'ajouter des champs arbitraires à vos événements, permettant par exemple de préciser ce que vos invités amènent à un pique-nique.

Partage de fichiers

le partage de fichier depuis le navigateur

Là on touche à une fonctionnalité utile au quotidien, et dans beaucoup de circonstances. Salut à toi permettait depuis longtemps de s'envoyer des fichiers, ou d'en déposer sur votre serveur, mais il s'agit ici de partager un ou des répertoires, ou de déposer des fichiers sur un serveur.

Tout ceci est expliqué dans un récent billet de blog, mais je vous donne tout de même 2 exemples pour bien comprendre :

  • vous êtes chez vous, vous venez de prendre une vidéo et des photos sur votre téléphone que vous voulez voir sur votre ordinateur. Vous avez installé Cagou, l'interface bureau/Android de SàT sur votre appareil et partagé votre répertoire photo. Depuis votre ordinateur de bureau, dans la partie « partage de fichiers » vous voyez votre appareil et pouvez télécharger directement la vidéo et les photos. La connexion se fera directement sur le réseau local d'appareil à appareil, vos fichiers ne transiteront pas par un serveur situé on ne sait où.

  • vous avez des fichiers que vous voulez accéder de n'importe où n'importe quand (des photos ou des documents de travail par exemple). Vous les mettez dans un répertoire virtuel sur votre composant de partage de fichier (une instance SàT également, voir plus bas), et vous y accédez aussi simplement que dans l'exemple précédent.

Notez que bien qu'avec Cagou la connexion se fait directement quand c'est possible, ça n'est pas encore le cas pour Libervia qui téléchargera d'abord le fichier sur le serveur avant de la fournir en HTTPS. La connexion directe nécessitera WebRTC qui est prévu pour la version 0.8.

Les permissions se gèrent très simplement : vous indiquez qui a le droit d'accéder à vos fichiers en quelques cliques.

Les fichiers passent pour le moment en clair (non chiffré), mais ceci ne devrait plus être le cas d'ici la version finale.

Albums photos

un album photo avec un commentaire

Basé sur la fonctionnalité précédente, un mode album photos permet de présenter un dossier qui ne contient que des photos avec une vue adaptée, et de le commenter.

Les permissions sont très utiles ici, permettant de ne laisser, par exemple, que votre famille visionner un album.

Il n'est pas encore possible d’accéder à un album depuis l'interface de Libervia, pour tester vous allez devoir changer l'URL à la main depuis le partage de fichiers (en remplaçant files/list par photos/album).

Tickets

les tickets de SàT, les premiers ont été importés de Bugzilla

Développé pour nos propres besoins, SàT permet désormais de gérer des tickets à la façon d'une forge logicielle. On est dans le classique ticket de suivi, rapport de bogue, tâche à faire, etc.

Les champs sont libres, il est ainsi très facile d'utiliser cette fonctionnalité pour tout type de listes : tâches à faire, mais aussi, par exemple, liste de courses.

Requêtes de fusion

un patch essentiel est en cours de revue

Dans la lignée des tickets, SàT gère également les « requêtes de fusion » (ou « merge requests » en anglais). Développé et utilisé en premier lieu pour le développement de SàT lui-même, ce système a l'avantage de ne pas être lié à un outil particulier (comme Git ou Mercurial). Il est actuellement utilisé avec Mercurial, mais il est possible de l'utiliser avec ce que l'on souhaite, et cela n'est pas réservé au développement de code logiciel.

Ces 2 dernières fonctionnalités font de SàT une forge décentralisée. Même si elle est encore basique, elle a l'avantage d'être simple d'utilisation, souple et facilement adaptable, et surtout il n'existe pas ou peu de forge décentralisées à l'heure actuelle (on peut sans doute compter Fossil, et peut être d'autres).

Encore une fois, l'arrivée de contributions permettrait d’accélérer les choses et d'en faire un outil très puissant.

Application

la partie dynamique, qui est en maintenance minimal et sera réécrite pour la 0.8

Pour conclure ce petit tour de Libervia, notons l'application qui vous amènera à une version entièrement dynamique, plus élaborée mais également plus difficile à utiliser, la version de base voulant être facile à prendre en main.

L'application web Libervia permet d'utiliser des widgets que vous pouvez déposer côte à côte, de faire du chiffrement de bout en bout (via OTR), ou de publier des billets de blog en mode simple ou WYSIWYG, avec la syntaxe qui vous convient (Markdown par exemple).

Il s'agit de l'application historique qui pour des raisons techniques n'est plus qu'en maintenance minimale et comporte un certain nombre de problèmes (comme le contact qui apparait 2 fois, visible dans la capture ci-dessus). Elle sera réécrite pour SàT 0.8, mais est laissée dans cette version en l'état pour ceux qui souhaitent toujours l'utiliser.

Cagou (bureau/Android)

Promise suite à notre campagne de financement, qui nous a permis de récolter un peu plus de 3000 €, Cagou est notre nouvelle interface de bureau et pour appareils Android. Elle se veut moderne, facile à utiliser, et puissante.

Son interface originale est inspirée de Blender, elle permet de diviser l'écran pour afficher plusieurs widgets en même temps. Cette interface a été pensée pour qu'on puisse l'utiliser même sans connaître cette capacité de division, tout en étant évidant à utiliser une fois celle-ci découverte.

Pour utiliser un widget, cliquez tout simplement sur l’icône en haut à gauche du widget en cours pour sélectionner un autre.

Pour le moment, 5 widgets sont disponibles : chat, liste de contacts, partage de fichiers, sélectionneur de widgets et paramètres.

Tout en haut, vous avez un menu (uniquement sur le bureau) et une zone de notification, ou les messages apparaissent quelques secondes (et sont visibles en entier en cliquant sur la tête de Cagou gauche). De l'autre côté, une autre tête de Cagou peut apparaître quand vous recevez des notifications nécessitant une action de l'utilisateur (nouveau contact par exemple, ou demande d'authentification, voir ci-dessous). Ainsi pas de popup qui vole le focus quand vous tapez un message ou autre.

Split

Originalité de Cagou, inspirée de Blender, il est possible de diviser l'écran à volonté en cliquant sur les zones avec 3 points (en haut et à gauche) puis en les faisant glisser. Si la barre apparaît en rouge, cela veut signifie que vous allez fermer la zone. Une image animée devrait rendre les choses plus claires :

démonstration des capacités de séparation des widgets (split) de Cagou

Vous pouvez ainsi vous organiser comme vous l'entendez, et surveiller plusieurs choses en même temps. À terme il devrait être possible de garder les dispositions pratiques pour les remettre en place facilement.

Chat

capture du mode « chat » de Cagou

Le chat devrait être relativement intuitif. La zone du haut indique le salon ou l'identifiant (JID) de la personne avec laquelle vous discutez. Il est possible d'entrer un autre identifiant manuellement pour changer de salon, par exemple entrez sat@chat.jabberfr.org pour venir sur le salon de Salut à Toi.

Toujours en haut, l’icône « cadenas » à droite (visible uniquement dans les conversations 1/1) vous permet de chiffrer de bout en bout la conversation, avec OTR uniquement pour l'instant (voir plus bas).

Si vous avez plusieurs conversations en cours, vous pouvez passer de l'une à l'autre en balayant l'écran avec votre doigt horizontalement (mouvement aussi appelé « swipe »). Seules les conversations non déjà visibles sur l'écran seront disponibles, et pour le moment elles sont dans un ordre alphabétique (il est fort probable que les conversations récentes soit disponibles en premier d'ici la version stable).

Enfin dans la zone du bas, outre la zone de saisie vous voyer un bouton + cerclé qui permet d'ouvrir le panneau d'envoi de médias. Sur bureau vous n'avez pour le moment que la possibilité de choisir un fichier, mais sur Android vous pouvez sélectionner/prendre une photo, une vidéo, sélectionner un fichier, ou encore enregistrer un message audio. Dans tous les cas, vous pouvez choisir si vous voulez téléverser le fichier sur votre serveur, ou l'envoyer directement à votre correspondant, sans passer par le serveur.

Transfert de fichiers

Le principe a déjà été expliqué pour Libervia, voici une animation montrant comment partager un répertoire sur Cagou :

partager un répertoire depuis Cagou

Comme vous le voyez, il suffit de faire un clique/appui long sur le répertoire ou fichier à partager, et de sélectionner les personnes qui y auront accès.

Si vous cliquez sur le bouton « share local files » dans la zone d'en-tête pour changer de mode et voir les appareils qui partagent. Vous verrez alors apparaître – comme sur Libervia – 3 zones : la première avec les éventuels composants de partage, la deuxième avec vos propres appareils (votre téléphone ou ordinateur de bureau par exemple), et enfin les appareils de vos contacts. Là encore, la zone de saisie permet de filtrer les appareils affichés.

voir les appareils qui peuvent partager des fichiers

Authentification sur un site externe

SàT est un projet qui pousse à l'exploitation des différentes possibilités de XMPP, et notamment l'authentification sur des sites externes. Le principe est de pouvoir vous authentifier sans créer de compte sur n'importe quel site en indiquant juste votre JID.

Démonstration en vidéo, grâce au site de démo mis en place par jnanar, l'écran sur la droite est un téléphone (capturé avec scrcpy):

s'authentifier très simplement avec XMPP

Vous pouvez très facilement intégrer cela dans votre propre site soit en utilisant le composant de Chteufleur (qui est d’ailleurs à l'origine de l'implémentation dans SàT, un grand merci à lui), soit en utilisant un serveur où c'est déjà en place (c'est pas exemple le cas sur jabberfr grâce aux GA – gentils admins – de ce site).

Notez bien qu'une fois ceci en place, dans votre site vous n'avez besoin d'effectuer qu'une seule requête HTTPS pour valider une authentification (et ça serait super qu'un lecteur fasse l'implémentation pour LinuxFr).

Contacts

Pas besoin de s'éterniser sur ce mode, mais il est bon de savoir qu'il permet d'ajouter un contact en cliquant sur le bouton idoine en haut. Un/une clique/touche long(ue) permet également de supprimer un contact.

Un clique simple va lancer le mode discussion avec la personne choisie.

Ligne de commande (JP)

Il y a beaucoup trop de choses nouvelles dans jp pour tout décrire ici.

Quelques informations utiles tout de même :

  • dans jp on met toujours les commandes puis les arguments (jp [commande] [sous-commande] --arg_1 --arg_2 --etc)
  • jp [commande] --help vous permet de savoir comment utiliser une commande
  • jp shell vous permet d'avoir une invite de commande REPL
  • il est possible d'avoir des commandes haut niveau et bas niveau. Par exemple pour le blog, vous pouvez avoir les billets d'un blog mis en forme en faisant jp blog get -s blogueur@quelquepart.ext -O fancy, ou le XML bas niveau avec jp pubsub get -s blogueur@quelquepart.ext -n urn:xmpp:microblog:0
  • beaucoup de commandes disposent d'un système de mise en forme avec --output (ou -O). ainsi jp blog get -s blogueur@quelquepart.ext -O json vous permet de retrouver les métadonnées d'un fil de blog en JSON
  • jp est capable de générer des sites statiques grâce à --output template
  • quand le générateur de site le supporte, vous pouvez directement utiliser l'URL d'un blog pour l'éditer. Par exemple, je peux éditer un de mes derniers billets de blog en faisant jp blog edit -u https://www.goffi.org/b/khii3yEKWDhmNYSDt5GGrY/vers-forge-decentralisee-basee-xmpphttps://www.goffi.org/b/khii3yEKWDhmNYSDt5GGrY/vers-forge-decentralisee-basee-xmpp est l'URL de la page générée en HTML. Je me retrouve alors avec mon éditeur de texte affichant le code de ma page d'un côté (dans la syntaxe de mon choix) et les métadonnées de l'autre. Notez que cela fonctionne avec les sites générés par Libervia, mais également avec Movim.

Petite démonstration du shell pour lire un blog :

lecture d'un blog depuis le shell (jp)

Testez !

Vous pouvez tester tout cela, les instructions d'installations sont disponibles (en anglais seulement, nous manquons de moyens pour traduire) sur le wiki en cliquant ici.

SàT (backend + jp (CLI) + Primitivus (TUI)) est disponible dans Debian experimental (merci à Robotux, Naha, Debacle et les autres empaqueteurs).

SàT et ses frontaux (jp, Primitivus, Cagou, Libervia) sont disponibles sur Arch Linux (merci à jnanar et Link Mauve)

Nous avons eu confirmation que SàT et Cagou fonctionnent sur Mac OS X (merci à xma), nous aimerions du monde pour tester également sur Windows, BSD*, ou autre.

Vous pouvez tester sur Android en cliquant sur ce lien depuis votre appareil (il faut avoir autorisé les installations depuis les sources externes).

Notez bien qu'il s'agit d'une version alpha, ce qui signifie :

  • que ça plante, le code n'est pas encore stable
  • que toutes les fonctionnalités ne sont pas finies, ou présentes
  • que ça n'est pas optimisé
  • que ça n'est pas poli (graphiquement, il ne va vous insulter si vous êtes gentil avec lui)

Ah, en parlant de fonctionnalité non encore présente, il y a de très fortes chances que le chiffrement de bout en bout avec OMEMO soit implémenté d'ici la version finale, grâce entre autres à la disponibilité d'un nouveau module Python (merci à Syndace, son auteur). Le chiffrement de bout en bout est déjà disponible depuis plusieurs années, mais via OTR uniquement jusqu'ici.

Participez !

Une dernière animation pour vous montrer la détection automatique de la langue, une fonctionnalité expérimentale :

détection de la langue, puis filtrage des messages

Arrêtons-nous là pour les fonctionnalités, mais nous n'avons pas fait le tour.

Comme vous le voyez, il y a de quoi s'amuser et il y en a pour tous les goûts dans ce projet. Et ça tombe bien, avec les grandes vacances, vous avez certainement du temps devant vous, idéal pour contribuer sur un projet unique et engagé (engagez-vous qu'il disait) !

Vous pouvez commencer, par exemple, avec ce tutoriel pour écrire un greffon qui fonctionnera avec tous les frontaux.

N'hésitez pas à passer sur le salon XMPP de SàT (sat@chat.jabberfr.org, aussi accessible sans compte via le web).

Si jamais vous n'avez pas le temps (les pique-niques à plage c'est bien aussi), un soutien sur Liberapay et/ou une adhésion à l'association nous aide.

Essayez de faire passer le mot autour de vous, le projet manque de visibilité et a besoin de vous. Si vous souhaitez héberger une instance, vous pouvez commencer à tester (dans une partie « expérimentale/non stable » de votre site), et à nous faire des retours. Nous cherchons aussi du monde pour nous aider à empaqueter partout où c'est possible.

Merci d'avance, et à bientôt !

Vers une forge décentralisée basée sur XMPP

Avec la récente annonce concernant le changement de propriétaire de la plus grosse forge centralisée connue, on a vu resurgir ici et là des questionnements sur la création d'un outil similaire mais décentralisé.

J'ai profité de l'occasion pour rappeler le travail effectué pour implémenter tickets et requêtes de fusion (« merge requests ») dans Salut à Toi (SàT), travail qui était passé relativement inaperçu quand j'ai écrit à ce sujet, il y a 6 mois.

Désormais je souhaite apporter quelques précisions sur le pourquoi de ces outils.

Tout d'abord pourquoi pas la grosse forge ? Après tout une importante partie des logiciels libres actuels l'utilise déjà !
D'une part parce que ce n'est pas libre, et nous nous sommes engagés dans notre contrat social à utiliser tant que possible des logiciels libres, y compris pour l'infrastructure. D'autre part parce que c'est centralisé, et là encore notre contrat social est clair à ce sujet, même si c'est moins essentiel pour l'infrastructure que pour SàT lui-même. Enfin parce que nous utilisons à l'heure actuelle Mercurial, et que la forge la plus connue est construite autour de Git.
Ne cachons pas toutefois que nous nous sommes déjà posés la question notamment en assemblée générale (cf. les comptes rendus), nous étions intéressés en particulier par la visibilité.

« C'est centralisé ? Mais « Git » est décentralisé ! » est une réflexion que l'on entend souvent et elle est vraie, Git (et Mercurial, et d'autres) est décentralisé. Mais une forge n'est pas le gestionnaire de version, c'est tous les outils autour : hébergement, tickets, gestion des modifications (merge/pull requests), commentaires, wikis, etc. Et ces outils là ne sont pas décentralisés à l'heure actuelle, et même s'ils sont souvent accessibles par des API spécifiques aux services, ils restent soumis aux lois de la centralisation, c'est-à-dire du service qui héberge (et des aléas techniques de ce service). Cela veut également dire que si le service ne veut pas d'un projet, il peut le refuser, l'effacer, le bloquer.

La centralisation, c'est aussi la facilité pour cataloguer et rechercher… pour les projets qui sont sur ce service. Rendant de facto toute tentative extérieure moins visible et donc augmentant ses difficultés. C'est une situation que nous connaissons bien avec Salut à Toi (nous sommes également absents des « réseaux sociaux » propriétaires et centralisés pour les mêmes raisons), et que nous jugeons inacceptable. Il va sans dire que se concentrer sur une plateforme ne fait qu'encourager et prolonger cet état de fait. Notons tout de même qu'il n'est pas question ici de dénigrer ceux qui ont fait des choix différents, ces réflexions étant liées à notre implication politique forte et les contraintes changent d'un cas à l'autre.

Pourquoi, alors, ne pas utiliser des projets libres existants, avancés et fonctionnels comme Gitlab ? D'une part parce que nous travaillons avec Mercurial et non Git, et d'autre part parce que nous serions là aussi dans la centralisation. Il y a une autre raison : c'est qu'il n'existe pas ou peu (Fossil peut être ?) de forges décentralisées, et nous avons déjà tout ce qu'il nous faut avec SàT et XMPP. Et puis il y a un certain plaisir à créer les outils qui nous manquent.

SàT se veut un écosystème complet, offrant la majeure partie si ce n'est tous les outils nécessaires pour s'organiser et communiquer. Mais il est aussi générique et réutilisable. C'est pourquoi le système de « merge requests » n'est pas lié à un outil particulier (Git ou Mercurial), il peut être utilisé avec d'autre logiciels, et n'est d'ailleurs par réservé au développement de code. C'est une autre brique qui sera utilisée là où ça sera utile.

Pour conclure, je rappelle que si vous voulez voir une alternative décentralisée, éthique et engagée pour construire nos logiciels, nous organiser et communiquer, on peut la rendre possible en coopérant et contribuant, que ce soit avec du code, de la conception graphique (design), des traductions de la documentation des tests, etc.
Nous avons récemment eu de l'aide pour l'empaquetage sur Arch (merci à jnanar et aux mainteneurs précédents), et il y a des efforts continus pour l'empaquetage sur Debian (merci à Robotux, Naha, Debacle et les autre empaqueteur XMPP sur Debian). Si vous pouvez participer, merci de regarder comment nous contacter sur le site officiel), ensemble on peut faire la différence.
Si vous manquez de temps, vous pouvez aussi nous soutenir sur Liberapay: https://liberapay.com/salut_a_toi. Merci d'avance !