Matrix : Synapse et Dendrite changent de propriétaire (et de licence !)

C’est une news toute chaude qui nous arrive de la Matrix.org Foundation et d’Element : Synapse et Dendrite changent de propriétaire (et de licence !)[1][2]

Prologue : c'est quoi Matrix ?

Matrix, c’est à la fois un réseau et un protocole, un protocole de communication décentralisée. Concrètement, nous avons tous un compte Whatsapp, Messenger ou Signal messages, bien que chiffrés pour Whatsapp et Signal, transitent par le serveur de l’entreprise qui gère la messagerie (Meta ou Signal Inc), maintenant, imagine que le serveur de cette appli tombe en panne, ou que l’app devienne payante, ou que l’entreprise fasse faillite : l’application ne fonctionne plus, temporairement ou définitivement.
Cela laisse donc à l’entreprise un énorme rôle : celui de maintenir l’accès et de modérer si besoin (les canaux publics principalement)

Matrix, au contraire, c’est un peu comme les mails : plusieurs utilisateurs qui communiquent, mais sur plusieurs serveurs distincts. On peut envoyer un mail depuis une adresse @gmail.com à une adresse @hotmail.com sans soucis. Matrix c’est pareil, il existe une multitude de serveurs, gérés par une entreprise, une association du coin, ou juste par les utilisateurs eux-mêmes.
Par exemple, j’ai chez moi un Raspberry Pi qui héberge un serveur, pour ma famille, et j’ai donc le compte @charlesp:stratus.family. Cela ne m’empêche pas de discuter avec @toto:matrix.org (serveur géré par l’entreprise Element) ou @jeanpierre:deuxfleurs.fr (géré par l’association Deuxfleurs), d’avoir des groupes avec eux, en ayant toutes les fonctionnalités qu’on attends d’une telle appli (indicateur de lecture, réponses, réactions par emoji, etc.) et, par défaut, un chiffrement.

Matrix est surtout ouvert, c’est-à-dire que chacun peut lire ses entrailles et savoir comment le protocole fonctionne, et la documentation est vraiment claire. Les logiciels sont aussi interchangeables du moment qu’ils parlent le même langage : Matrix. On a donc plusieurs logiciels de serveurs, et plusieurs logiciels de client, pour tous les goûts.

Contexte

La fondation Matrix.org ainsi que l’entreprise Element viennent d’annoncer qu’Element prévoit de forker les dépôts de Synapse et Dendrite dans les prochains jours sous une autre licence (AGPLv3), et que Matrix.org cessera de maintenir les dépôts originaux à cette occasion.

Synapse et Dendrite sont les deux implémentations de référence d’un serveur utilisant le protocole Matrix, ils étaient jusqu’à présent développé par la Matrix.org Foundation. Synapse est le logiciel serveur le plus utilisé tandis que Dendrite a été conçu comme son remplaçant encore en rodage, le protocole Matrix ayant énormément évolué depuis la sortie de Synapse.

Element est une entreprise du Royaume-Uni, c’est elle qui a créé le protocole Matrix à l’origine, et a depuis donné la majeure partie de son travail à la fondation Matrix.org. C’est cependant elle qui, depuis ce don, a contribué le plus à Synapse et Dendrite, à hauteur d’environ 95% du code actuel.

Pourquoi ce fork ?

Pour faire court : Element en a marre que son travail serve gratuitement à ses concurrents, qui prennent son logiciel, le modifient, et le vendent sous licence propriétaire. En effet, les dépôts de Synapse et Dendrite sont publiés sous licence Apache, ce qui permet à n’importe qui de prendre le code, le modifier et le vendre, en ayant seulement besoin de créditer les auteurs originaux.

Le problème, c’est que la fondation Matrix.org ainsi qu’Element ont du mal à rentrer dans leurs frais alors que beaucoup d’entreprises bénéficient de l’écosystème sans jamais y contribuer en retour.

C’est pourquoi Element a décidé qu’ils allaient créer leur propre dépôt pour Synapse et Dendrite, sous licence AGPLv3, licence qui oblige à publier les modifications que l’ont fait au code.
En parallèle, la fondation Matrix.org n’a pas les moyens de continuer à maintenir seule les codes des deux logiciels, et a donc décidé d’arrêter le développement des dépôts originaux, elle recommande de passer sur la version maintenue par Element.

Ce que ça veut dire

Concrètement, cela veut dire que si une entreprise souhaite se baser sur Synapse ou Dendrite et les modifier pour ajouter des fonctionnalités par exemple, elle sera obligé de republier son code sous une licence libre. Permettant ainsi à Element de reprendre ce code dans sa propre version du logiciel.

Cela va donc obliger les entreprises qui utilisent un des logiciels à contribuer à leur conception.

Ce que j’en pense

Je pense que le passage à l’AGPLv3 est une très bonne chose : la fondation Matrix.org se plaint régulièrement de ne pas avoir assez de contributions car Element est le seul contributeur. Ce changement de licence devrait augmenter le nombre de contributions.

En revanche, le relai entre la fondation Matrix.org et Element est un retour en arrière : Element prévoit de faire payer les entreprises qui voudraient contourner l’AGPLv3 et ne pas publier leurs modifications. Nous ne savons pas si ces paiements vont être en partie reversés à la fondation.
De plus, Element prévois de demander de signer un CLA (Contributor Licence Agreement) aux contributeurs qui pourraient proposer des modifications sur les dépôts de Synapse et Dendrite. Concrètement, cela veut dire que pour contribuer à ces codes, il faudra donner tous les droits sur notre contribution à Element. Cette mesure vas au contraire réduire le nombre de contributions et permet du moins en théorie un passage en licence propriétaire du code des deux logiciels.

Le must selon moi aurait été de passer les dépôts de la fondation Matrix.org sous licence AGPLv3, cela aurait eu les avantages du copyleft, à savoir interdire les réutilisations propriétaires, sans pour autant retirer le contrôle de la fondation sur ces codes. Il aurait cependant fallu trouver un moyen pour permettre aux entreprises qui le souhaitent de garder leurs modifications propriétaires (ce qu’Element permet en fonction d’un paiement), car il y a tout un tas de raison valides de le faire, et cela aurait probablement dû passer par un CLA également. Mais donner ses droits sur une contribution à une fondation est toujours bien mieux vu qu’à une entreprise qui peut dès lors décider à tout instant de passer le logiciel en propriétaire, et tant pis pour les contributeurs originaux.


  1. ↩︎

  2. ↩︎

1 « J'aime »

Donc très globalement Élément reprend un contrôle presque total dessus, avec une demi excuse et un moyen de se faire de l’argent en prime…
Mais l’inter-opérabilité de l’Europe n’était pas basé sur Matrix ? Ils devront publier leur code aussi ou c’était avant donc ça ne s’applique pas ?
Je trouve quand même ce mouvement un peu fourbe.
PS : sinon super boulot :slightly_smiling_face:

1 « J'aime »

Je trouve que le changement vers l’AGPLv3 pour l’implémentation serveur est une bonne chose car ça empêche les profiteurs. C’est d’ailleurs pour ça que l’extrême majorité des serveurs de ce type (Mastodon, PeerTube, etc) l’utilisent.
Le côté se faire de l’argent en vendant des licenses ET la reprise de contrôle par Element je trouve ça ultra moyen par contre. Ils auraient mieux fait de garder les projets sous Matrix mais de changer la license.
Après pour l’inter-opérabilité je crois que c’était une piste. Si tu as plus d’info je veux bien un source. Mais si c’est bien le cas et que les implémentations utilisent du code de Synapse et/ou Dendrite, ils devront les publier sous AGPLv3. Par contre, si c’est leur propre implémentation, non, car le standard de Matrix ne requiert pas la publication du code source pour être utilisé.

2 « J'aime »

Pour le moment, Element s’est montré assez fiable sur le rapport à l’open source. Mais c’est aussi le cas d’autres entreprises qui ont passé leur code en propriétaire après quelques versions.

Cela dit Element a déjà une version propriétaire d’un serveur Matrix basé sur Synapse (Element Server Suite, qui ajoute notamment une interface administrateurs). Tuer Synapse reviendrait à tuer l’écosystème de Matrix, couper la branche sur laquelle ils sont assis… pour l’instant.

Comme viens de le dire @anhgelus le passage à l’AGPL c’est une bonne chose cela dit, ça va renforcer l’écosystème en obligeant les entreprises qui l’exploitent à le renforcer. Par contre, contrairement à Mastodon et PeerTube que tu cite, Matrix peut très bien être utilisé en environnement commercial, donc il est possible que certains usages nécessitent un passage en propriétaire. La vente de licences plus permissives ne m’aurait pas choqué si au moins une partie de l’argent était reversé à la fondation (ce qui n’est pas précisé, ça sera peut-être le cas, surtout qu’Element est un gros donateur de la fondation).
Somme toute, un système en AGPL pour tous + licences plus permissives payantes force les entreprises à contribuer, soit en code, soit monétairement. C’est bien mieux que l’Apache Licence qui permet d’exploiter le code sans jamais devoir rien rendre en retour.

Pour l’interopérabilité suite au DMA en Europe, Matrix avait été une piste de réflexion, et un standard[1] est en cours d’écriture par l’équipe de Matrix pour l’IETF (groupe MIMI[2]). Ça ne sera pas exactement le protocole Matrix actuel, qui utilise des paradigmes très différents de ceux d’autres applications comme Whatsapp, et qui rendrait difficile une intégration, mais une version modifiée de la spec Matrix (qui intégrera la spec Matrix dans le futur normalement)


  1. ↩︎

  2. https://datatracker.ietf.org/group/mimi/about/ ↩︎

2 « J'aime »