Comment puis-je savoir si une distribution particulière du client Discourse est un logiciel libre ?

Pour les personnes qui souhaitent éviter d’exécuter des logiciels non libres, comment pouvons-nous savoir si le logiciel qu’un site Web nous fournit pour accéder à un forum propulsé par Discourse est un logiciel libre ?

Sans le logiciel client JavaScript, le forum semble être en lecture seule, je souhaite donc exécuter le JavaScript sur le site Web, mais je ne vois aucune indication ici sur Discourse Meta ou sur, par exemple, les forums Purism (également propulsés par Discourse), que le logiciel client est un logiciel libre. Certains fichiers de script contiennent des liens vers des cartes sources, mais les cartes sources que j’ai vérifiées ne contenaient aucune information de licence.

J’ai trouvé un ancien sujet qui mentionne « Il n’y a qu’une seule version de Discourse – l’incroyable version open source », mais j’ai aussi trouvé un sujet qui suggère que l’accord de contribution (CLA) peut autoriser des versions propriétaires, mais il ne donne aucun exemple de versions propriétaires.

Une instance de Discourse qui affiche des informations de licence est le forum des membres de la FSF (accessible uniquement aux membres, je pense), qui renvoie au dépôt Discourse GitHub, un dépôt git de la FSF, et au dépôt GitHub d’une extension, mais ces informations ne sont affichées qu’une fois le logiciel client en cours d’exécution, ce n’est donc pas très utile pour décider d’exécuter ou non le programme au départ.

Existe-t-il un moyen pour moi de déterminer si le logiciel client servi par une instance Discourse est un logiciel libre sans exécuter ce logiciel ? Ou même si je dois exécuter le logiciel, comment obtenir le code source complet sous licence du logiciel client d’une instance Discourse ? Le dépôt GitHub original de Discourse n’est certainement pas toujours suffisant, car les gens peuvent avoir modifié le logiciel avant de le redistribuer ?

Alternativement, existe-t-il une application Discourse différente qui ne télécharge pas de logiciels à partir des serveurs auxquels elle se connecte ?

1 « J'aime »

Discourse est open source, donc son utilisation est gratuite. L’hébergement, par soi-même ou en utilisant CDCK, coûtera.

Rechercher is discourse free a donné ceci :

Bien sûr qu’il l’est. Et de facto la seule source à utiliser.

4 « J'aime »

Je suppose que vous ne pouvez pas.

Certaines installations seront hébergées et auront des éléments propriétaires dans la pile d’hébergement.

Les auto-hébergeurs seraient assez fous pour ne pas utiliser l’installation standard car c’est la moins chère à supporter.

Une chose que vous pourriez trouver, c’est que certains sites pourraient utiliser des plugins propriétaires/privés que la plateforme vous permet d’installer à la discrétion de l’administrateur.

6 « J'aime »

Je suis confus par cette déclaration. Dites-vous que les personnes qui hébergent Discourse ne modifient pas le logiciel avant de le redistribuer ?

Les gens sont connus ici sous le nom d’équipe ou d’entreprise CDCK. Bien sûr, ils le font, tous les jours. Il est en développement constant. Et pourtant, c’est ce que nous utilisons.

Cela peut ouvrir cette question :

2 « J'aime »

Le fait que vous ayez mentionné les plugins m’a fait penser s’il existait un moyen de vérifier les informations de version, et j’ai trouvé ce sujet qui décrit comment obtenir les informations de version.

Je peux donc voir, par exemple, que cette instance utilise le commit 276bc8a565389ea1a145af08ec8e64c1a5bea990, que le forum des membres de la FSF utilise le commit 7ecaf6295daf8759aa98d00e7035c4dc0f853303, que le forum Purism utilise 999aaa35a79ae7c586a91de1f6c1f7b3c8092bd2, et que le forum Exercism utilise le commit 1bd9ca11e777f880462ae64c6795ef7de28a8cd2. Ce sont tous des commits valides dans le dépôt officiel, donc je suppose que les instances n’ont pas modifié Discourse lui-même (bien qu’elles aient pu ajouter des plugins).

Je pense qu’il reste les plugins et les thèmes. Il semble que l’on puisse voir le nom des plugins en recherchant les attributs “data-discourse-entrypoint” dans les scripts de plugins, mais je ne vois pas d’identifiant de version. Connaissez-vous un moyen d’obtenir la liste des plugins installés ?

Vous pourriez examiner les packages JavaScript pour avoir une idée, mais n’importe quel nombre de plugins pourrait être installé en arrière-plan, à l’abri des regards indiscrets.

2 « J'aime »

Ce que je voulais dire par « modifier le logiciel avant de le redistribuer » était que les personnes qui redistribuent le logiciel sur des sites Web publics, comme forums.puri.sm par exemple, pourraient modifier leur version sans soumettre les changements au dépôt git principal. S’ils concluaient un accord avec Discourse, ils pourraient publier ces changements en tant que logiciel non libre, séparément du dépôt git principal de Discourse.

La vélocité des changements apportés au dépôt principal est si élevée qu’il serait coûteux de maintenir un fork viable.

C’est précisément pour cela que les plugins sont une solution populaire pour les extensions.

5 « J'aime »

Gros “si” et je ne crois pas que cela se produirait — et quel accord, Discourse est open source. Mais CDCK ferait mieux de le savoir. Je suppose qu’il existe des forks, mais sont-ils en production… J’en doute. Mais comme Robert l’a dit, pourquoi quand les choses peuvent être faites avec des composants et des plugins.

2 « J'aime »

Je suppose donc que la seule façon de vérifier les plugins pourrait être de :

  • Configurer ma propre instance Discourse
  • Essayer d’installer les mêmes plugins que toutes les instances distantes avec lesquelles je veux interagir
  • Vérifier si le JavaScript du plugin est le même sur mon instance par rapport à leur instance

Je suppose que je pourrais aussi essayer d’éviter complètement d’exécuter le logiciel du plugin, et n’utiliser que les scripts qui font partie de Discourse lui-même.

Bien sûr, je n’ai aucun moyen de vérifier leur backend, mais je ne me soucie que du logiciel client lorsque je me connecte au serveur de quelqu’un d’autre.

Peut-être que le mode sans échec, qui désactive les personnalisations JavaScript, vous intéressera également.

2 « J'aime »

Non. Vous ne pouvez pas voir ce qui se passe sur le serveur. Il peut y avoir de nombreux changements qui ne sont pas exposés sur l’API publique ou qui sont très difficiles à déchiffrer.

Un profane n’est pas au courant de ce qui se passe sur le serveur.

3 « J'aime »

Je pense que cela, combiné aux informations de version, est suffisant pour utiliser des distributions Discourse arbitraires tout en évitant d’exécuter des logiciels non libres. On peut vérifier que le commit est dans le dépôt GitHub officiel, puis soit s’assurer que le mode sans échec est toujours activé, soit uniquement mettre sur liste blanche (dans un outil comme LibreJS) les scripts qui apparaissent en utilisant le mode sans échec.

Non. Ce n’est pas le cas. Il désactive uniquement les modifications côté client.

3 « J'aime »

Les modifications côté client sont tout ce qui m’importe car je n’exécuterai pas le code serveur sur mon ordinateur.

Si j’allais exécuter un serveur Discourse, je choisirais les plugins à installer et je n’installerais tout simplement pas les plugins qui n’ont pas de licence.

Lorsque je me connecte au serveur de quelqu’un d’autre, je suis censé exécuter le logiciel qu’il me donne, qui pourrait ne pas avoir de licence facile à trouver.

Je pense que la plupart des installations auront des ensembles de plugins prévisibles. Mais pas tous. Vous ne le saurez jamais à moins de devenir un administrateur privilégié du site.

2 « J'aime »

Pour m’assurer que j’ai bien compris : si un changement n’est pas côté client, cela signifie qu’il n’affectera pas le code qu’un utilisateur normal (c’est-à-dire non administrateur) de la distribution Discourse exécutera. Est-ce exact ?

exécuter mais ne pas être soumis lors du traitement des informations avec lesquelles ils pourraient interagir.

un serveur pourrait, en arrière-plan, envoyer tous vos détails à Facebook et être payé :wink:

2 « J'aime »