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

Je peux également utiliser le mode sans échec pour avoir une idée des changements apportés par d’autres distributions Discourse :

  • Purism n’a que quelques scripts de thème (qui font peut-être partie de Discourse officiel, puisque le mode sans échec bloque tous les thèmes, je pense) et un élément JavaScript interne (c’est-à-dire faisant partie du fichier HTML, pas un fichier JS externe), commençant par const DELAY_TARGET=2e3,POLLING_INTERVAL=50,splashS
  • Exercism a ce qui semble être le plugin discourse-spoiler-alert qui a été ajouté plus tard au cœur, ainsi que le même code JS interne que Purism.
  • Le forum des membres de la FSF n’a que ce même code JS interne que les deux autres.
  • Discourse Meta (ce forum) semble avoir beaucoup de différences au niveau du JS.
    • discourse-activity-pub
    • discourse-customer-flair-plugin (je n’ai trouvé aucune licence pour celui-ci)
    • discourse-deprecation-collector
    • discourse-doc-categories
    • discourse-new-features-feeds (aucune licence trouvée pour celui-ci non plus)
    • de nombreux autres scripts, y compris certains qui n’ont même pas de lien vers une carte source.

Il semble donc que la plupart des distributions tierces (sur la base de mon petit échantillon de 3) restent assez proches de Discourse principal, mais cela donne l’impression que cette distribution contient des plugins qui ne feraient pas partie de la plupart des distributions. Savez-vous où je pourrais trouver le code source sous licence pour tous ceux-là ? Seraient-ils dans le dépôt principal ? Je n’ai pas réussi à les trouver en recherchant certains de ces noms dans le dépôt principal, mais il est possible que je l’aie manqué.

À partir d’ici, c’est évident, car la plupart d’entre eux ne sont pas de tiers, mais de première partie :smirking_face:
Vous devriez consulter les catégories Plugin et Theme component. Mais vous pourriez également trouver intéressantes les catégories Dev et Documentation, par exemple.

2 « J'aime »

J’ai essayé de rechercher sur tout le forum « discourse-new-features-feeds » (par exemple) et je n’ai rien trouvé. Pour certaines extensions, j’ai pu les trouver dans le répertoire des plugins, sur GitHub, ou ici sur les forums, mais pour discourse-new-features-feeds et discourse-customer-flair-plugin, je n’ai rien trouvé. Je n’ai pas vérifié chaque script de plugin, il peut donc y en avoir d’autres que je ne pourrais pas trouver.

Je suppose qu’il y a une raison pour laquelle, par exemple, les personnalisations de Meta ne sont pas publiques. Ou alors vous n’avez pas creusé assez profondément dans le dépôt de Discourse :man_shrugging:

2 « J'aime »

Il est possible qu’il s’agisse d’un client Enterprise qui a fait personnaliser son forum spécialement pour lui par Discourse.
De plus, si vous voulez utiliser le mode sans échec pour voir les personnalisations côté client, cela ne le désactiverait-il pas plutôt ? Comment l’activer sur ces sites en premier lieu ?

2 « J'aime »

Par curiosité, je me demande quelle est exactement la logique derrière tout ça. On ne peut tout simplement pas naviguer sur Internet avec les préoccupations que vous soulevez, n’est-ce pas ?

Vous parlez de « licence ». Mais votre propre licence d’utilisation d’un forum spécifique en tant qu’utilisateur simple serait différente de la licence d’exécution du logiciel du forum (= si quelqu’un veut mettre en place un autre forum avec). Pourquoi un utilisateur se soucierait-il de ce dernier point ? À cause de certains principes auxquels il veut adhérer ? Toute personnalisation non redistribuée serait « propriétaire », je suppose. Ce qui soulève la question de savoir où cela commence et où cela finit.

Vous pouvez vous méfier du javascript et de ce qu’il pourrait permettre d’exécuter sur votre navigateur (les risques et les possibilités de cela sont souvent débattus. Il est censé être limité). Je ne suis pas sûr que Discourse puisse fonctionner sans lui, cependant. Ou fonctionner correctement, du moins. Vous pouvez toujours essayer. Il existe par exemple l’extension de navigateur populaire « NoScript ».

Je me demande encore sur le raisonnement : s’agit-il de code malveillant potentiel ? Dans ce cas, il ne me semblerait pas très logique que vous vous sentiez mieux avec une licence qui DIT qu’un forum exécute une version non modifiée. Ou de quoi s’agit-il ?

4 « J'aime »

En général, je veux éviter d’exécuter des logiciels non libres. La raison principale est que je pense que je devrais avoir le contrôle sur les logiciels qui s’exécutent sur mon ordinateur, et une raison supplémentaire est que je n’aime pas l’idée de bogues qu’il pourrait être illégal de corriger. Je pense aussi qu’il serait bon que j’obtienne mes logiciels d’un petit nombre de dépôts de confiance, plutôt que de télécharger des logiciels à partir de centaines de sites Web indépendants sans contrôle ni responsabilité de tiers, il est donc important pour moi d’être libre de packager les logiciels que j’utilise pour un dépôt de confiance (bien que ce soit assez peu pratique pour le JS servi par le site avec la technologie actuelle).

Je ne pense pas que je devrais avoir le contrôle sur les logiciels qui s’exécutent sur les ordinateurs des autres, car je pense que l’opérateur du serveur devrait avoir ce contrôle, et il ne me semble pas logique que plusieurs utilisateurs contrôlent entièrement le logiciel.

Non, il est relativement facile d’éviter d’exécuter des logiciels non libres sur Internet si vous n’utilisez pas de programmes qui téléchargent et exécutent automatiquement du code arbitraire de parties non fiables, ou si vous modifiez de tels programmes pour qu’ils ne le fassent pas (par exemple, en installant LibreJS dans votre navigateur Web).

D’après ce que je peux dire, l’exécution du logiciel du forum est nécessaire pour utiliser la plupart des fonctions du forum, bien que la lecture des messages fonctionne sans cela. Si je veux enregistrer un compte et poster des sujets, il semble que je doive exécuter le logiciel du forum. La plupart des gens ne s’en rendent pas compte car la plupart des navigateurs téléchargeront et exécuteront tout logiciel que le site Web envoie, sans en informer l’utilisateur.

Certains logiciels de forum s’exécutent sur le serveur, et les instances Discourse ne distribueront pas nécessairement ce logiciel du tout, ce qui signifie que je n’obtiendrai pas nécessairement de logiciel non libre que l’instance a ajouté côté serveur, donc je n’essaie pas d’éviter les instances qui font cela.

aside about definitions

À mon avis, un logiciel qui n’est jamais distribué est « propriétaire » car il a un seul « propriétaire » (l’auteur) mais il est aussi « libre » car tous ses utilisateurs (un seul, l’auteur) sont libres d’en faire ce qu’ils veulent. Eh bien, je suppose que vous pourriez dire que les personnes qui interagissent avec un serveur sont des « utilisateurs » du logiciel sur ce serveur, donc peut-être que je devrais utiliser un mot différent de « utilisateurs », mais je ne suis pas sûr du mot à utiliser à la place. Peut-être suis-je techniquement un « utilisateur » du logiciel exécuté sur le réseau téléphonique ou sur le téléphone de quelqu’un d’autre si j’appelle quelqu’un.

Oui, j’ai NoScript installé, et lorsque je bloque le logiciel Discourse côté client, bien sûr, Discourse ne peut pas « fonctionner » sans lui, car j’ai empêché le navigateur d’exécuter les scripts. Le logiciel côté serveur, qui ne s’exécute pas sur mon ordinateur, n’est pas empêché de s’exécuter par NoScript. Dans cet état, les sujets et les commentaires servis par le logiciel serveur Discourse sont visibles, mais pour s’inscrire et poster, il semble que vous deviez utiliser le logiciel JavaScript côté client.

Concernant les logiciels malveillants, si un programme de logiciel libre est un logiciel malveillant, alors quelqu’un peut le modifier pour qu’il ne soit pas un logiciel malveillant, puis distribuer cette version modifiée à utiliser à la place. Pour le JavaScript servi par le site, c’est actuellement quelque peu peu pratique. Idéalement, il y aurait une licence indiquant directement que le logiciel est un logiciel libre, de sorte que même si le logiciel était modifié, il serait toujours légal de l’utiliser comme logiciel libre. Tel qu’il est, je dois faire confiance aux distributions que j’utilise pour ne pas « mentir » sur la version du logiciel qu’elles utilisent (par exemple, en modifiant le logiciel serveur Discourse pour prétendre qu’une validation est utilisée alors qu’il s’agit d’une autre).

J’ai probablement rendu cette réponse un peu trop longue, mais l’essentiel est que j’apprécie la liberté du logiciel et que je veux donc éviter d’exécuter des logiciels non libres sur mon ordinateur.

Dans ce cas, “ils” fait référence à Discourse Meta. N’est-ce pas une partie de Discourse (l’entreprise) ?

Oui, ce que je voulais dire, c’est qu’avec le mode sans échec, je peux désactiver les scripts des modifications, puis comparer quel logiciel est envoyé au navigateur dans les deux cas. La différence réside dans les modifications et les thèmes.

Le mode sans échec peut être activé en naviguant vers /safe-mode (par exemple, http://meta.discourse.com/safe-mode) et en sélectionnant les options là-bas. Cette page ne nécessite pas de JavaScript, donc le mode sans échec peut être activé tout en utilisant des extensions comme NoScript, LibreJS et/ou Haketilo pour bloquer le JS ou en définissant javascript.enabled sur false dans les paramètres du navigateur pour les navigateurs basés sur Firefox.

À ce stade, vous pouvez comparer les balises de script sur les deux pages pour voir ce qui a été supprimé avec le mode sans échec. J’ai utilisé un script comme celui-ci :

script-diff.js
// SPDX-FileCopyrightText: 2024 Jacob K
//
// SPDX-License-Identifier: CC0-1.0

// sur la page avec plus de scripts
const scriptSrcArr = [];
for (script of document.scripts) {
  if (script.src) {
		scriptSrcArr.push(script.src);
  } else {
    scriptSrcArr.push(script.textContent);
  }
}

console.log(scriptSrcArr)

// sur la page avec moins de scripts (vous devrez faire un clic droit sur le tableau et cliquer sur "Copier l'objet" sur la première page)
scriptSrcArr = PASTE_OBJECT_FROM_OTHER_PAGE_HERE
for (script of document.scripts) {
  if (!scriptSrcArr.includes(script.src)) {
      console.info(script)
  }
}
// Je suppose que les scripts sur la première page sont un sur-ensemble des scripts sur la deuxième page

@Jagster (j’essaie une réponse par édition, comme suggéré par Discourse (fonctionnalité de suggestions cool !))

Cela me fait penser que Discourse, tel que distribué par meta.discourse.org, est un logiciel non libre, ce qui signifierait que les affirmations “L’intégralité de la base de code de Discourse est ouverte et librement disponible au public” et “Discourse est un logiciel de forum 100% gratuit et open-source.” (toutes deux de www.discourse.org) semblent trompeuses, même si c’est techniquement vrai parce que le logiciel n’est pas la même chose que ses plugins. J’ai un peu l’impression d’avoir été trompé pour exécuter un logiciel non libre :slightly_frowning_face:

Je suppose que cette affirmation s’adresse vraiment aux personnes qui ont l’intention d’héberger des instances Discourse, et non de rejoindre des instances existantes.

J’espère que je me trompe et qu’il est vraiment vrai que je n’ai pas regardé assez attentivement le dépôt.

Vous devez ressentir cela très souvent. Pas de smileys, car c’était juste une déclaration sur le fonctionnement d’Internet et des applications qui y sont.

Vous venez de dire que les personnalisations sont mauvaises, et si la base est open source, alors tous les modules complémentaires doivent aussi être gratuits. Eh bien, je pense que WordPress a utilisé cela, mais certainement pas avec wordpress.com, mais si vous visitez mon site WordPress, il y a beaucoup de travail personnalisé. Certains sont propriétaires, certains sont ouverts, certains sont personnalisés et certains sont de moi. Et dans cette réalité, deux choses ne se produiront pas :

  • tout le code du travail personnalisé serait public
  • Je vous dirais ou à tout visiteur si j’ai une licence valide ou non

Mais j’ai du mal à comprendre pourquoi Discourse, WordPress, Moodle etc. ne seraient pas gratuits si certains ajouts ne sont pas gratuits. Je ne comprends pas la logique derrière cette pensée.

2 « J'aime »

C’est tout à fait le but :+1:
Vous ne pouvez pas prédire ce que les hébergeurs pourraient ensuite adapter pour faire.

En effet, de plus, et par exemple, à la discrétion de l’hébergeur, ils peuvent ajouter :

  • de la publicité
  • des abonnements

Et bien que le « logiciel » puisse rester « gratuit à utiliser », certaines fonctionnalités pourraient être limitées et la publicité ne serait activée que pour les abonnés payants.

Tout le monde n’a pas des fonds illimités pour exécuter une instance Discourse gratuitement. De nombreux sites doivent générer des revenus pour payer leurs factures.

Exécuter une instance Discourse n’est jamais « gratuit » à grande échelle. L’hébergeur doit payer les coûts du nom de domaine, du VPS et des services de messagerie, pour ne citer que les principaux.

(… et n’entrons pas dans les coûts de développement de Discourse en premier lieu !)

4 « J'aime »

D’accord, je pense comprendre votre point de vue.

Pas du tout ! Le code sera toujours libre.


Les administrateurs de leur propre site Discourse ont la liberté de personnaliser leur propre forum. Les plugins, thèmes, TCs ne doivent pas toujours être open source. Discourse est d’accord avec cela, car il existe des moyens d’utiliser des dépôts privés au lieu de publics pour connecter ces personnalisations.
Il en va de même pour tous les plugins, sauf dans des cas très, très, très rares (peut-être même presque jamais !) où de telles personnalisations seront payantes [1]. Donc rien n’est « non libre » : tout est libre.
Mon propos est que les logiciels open source seront libres. Les plugins sont gratuits - c’est votre choix de les utiliser. Il en va de même pour les thèmes, les TCs, etc. Ce qui n’est pas open source, cependant, peut être payant, mais les administrateurs ont choisi de le rendre gratuit à l’utilisation. Rien ne vous empêche si vous voulez faire une copie d’une personnalisation non open source au mieux de vos capacités et l’utiliser vous-même.
Discourse est gratuit, ses personnalisations publiques [2] sont gratuites, ses personnalisations privées sont également gratuites à l’utilisation (du moins dans un bon nombre d’endroits, mais

. Payer le propriétaire pour le code source est une chose différente, cependant.

Essentiellement, à moins que vous ne créiez vous-même un plugin/thème/TC et que vous ne le partagiez pas, vous pouvez toujours installer des personnalisations gratuitement. Personne ne vous en empêche.


Je suis désolé si cela semble impoli ou bref, ou si je tourne en rond et répète la même chose.


  1. Sauf par des commissions payantes, ce qui est votre propre choix de les sponsoriser. ↩︎

  2. c’est-à-dire celles listées ici sur Meta ou sur github publiquement ↩︎

1 « J'aime »

Mais celles-ci viennent « en plus » de la version open source, donc la simple existence d’une CLA ne rendra pas Discourse non libre.

Il ne s’agit pas de gratuité en termes d’argent, mais de gratuité au sens de « licence non restrictive ». What is Free Software? - GNU Project - Free Software Foundation

Ce n’est pas nécessairement vrai. Encore une fois : il s’agit de gratuité au sens de liberté, pas de prix. Il existe des projets open source dont les licences sont trop restrictives pour être considérées comme des logiciels libres selon la définition de la FSF. Des exemples sont MongoDB et ElasticSearch.

Exécuter des logiciels libres n’implique pas que vous ayez le contrôle sur ceux-ci.

Donc, il semble que vous confondiez « fiable » et « libre ». Lorsqu’un administrateur de serveur compile Discourse, le processus de compilation télécharge toutes sortes de paquets depuis NPM. Peut-on toujours leur faire confiance ? (L’histoire nous a appris que ce n’est pas le cas - exemple et un autre).

Vous « supposez » :thinking: Un administrateur de serveur peut apporter des modifications sans changer le hash de commit. Et un plugin peut également injecter du code Javascript.

Je suis au regret de vous informer, mais c’est faux.

Il ne s’agit pas de libre ou non libre, ou de source ouverte ou fermée, mais de confiance.

Si vous visitez une instance Discourse, vous devrez faire confiance à :

  • l’administrateur (ou les administrateurs) du serveur
  • toute personne ayant un accès commit sur l’organisation Discourse github
  • toute personne ayant un accès commit sur les dépôts de plugins
  • toute personne chez github
  • toute la chaîne logicielle NPM
  • toute personne ayant un accès commit à un dépôt NPM utilisé
  • toute personne ayant le contrôle sur votre logiciel de navigateur
  • l’entreprise qui a fourni le certificat SSL et la chaîne de confiance

Ce qui fera au moins quelques milliers de personnes ?

Les plugins et les composants de thème peuvent être trouvés dans des dépôts séparés.
Tous les plugins ne sont pas open source (par exemple, discourse-customer-flair-plugin ne l’est pas, à ma connaissance). Donc voilà. Vous devrez cesser d’utiliser Meta :wink: Je plaisante bien sûr. Mon propos est qu’il peut y avoir suffisamment de confiance sans que tout soit open source ou libre.

8 « J'aime »

Juste quelque chose, @JacobK1, as-tu lu la licence de Discourse ?

En citant quelques points qui pourraient être pertinents :

la Licence Publique Générale GNU
est destinée à garantir votre liberté de partager et de modifier des logiciels libres - pour s’assurer que le logiciel est libre pour tous ses utilisateurs.

Vous pouvez modifier votre copie ou des copies du Programme ou de toute partie
de celui-ci, formant ainsi une œuvre basée sur le Programme, et copier et
distribuer ces modifications ou œuvres selon les termes de la Section 1
ci-dessus

J’espère que cela a été répondu ci-dessus et dans la citation ci-dessus.

1 « J'aime »

Si je comprends bien, tout cela est principalement lié à javascript. Et il s’agit de ce qui est exécuté avec javascript dans votre navigateur, qui est servi par chaque instance de Discourse. Il s’agirait aussi principalement de « confiance » et de la capacité de savoir quel code est exécuté (en étant capable de le consulter). Correct ?

C’est bien au-delà de mes compétences, mais pouvez-vous avoir le « contrôle » sur cela ? À moins que vous ne soumettiez un commit qui change les choses pour tout le monde, je ne pense pas que vous puissiez vraiment vous « corriger » quoi que ce soit ici, car ce que vous appelez le « logiciel » exécuté sur votre ordinateur vous est fourni par le serveur à chaque fois.

Même si chaque forum publiait son propre code open-source, avec toutes les modifications possibles, pouvez-vous être sûr que c’est ce qu’ils exécutent réellement à tout moment ? Ce n’est pas comme si vous pouviez télécharger une fois, vérifier et compiler vous-même de votre côté.

Ce que vous voudriez vraiment, c’est soit :

  1. Pas de javascript (pas de chance avec Discourse sur ce point, qui en dépend fortement) ou
  2. Un client open-source indépendant réellement installé sur votre ordinateur. Ce dernier ne devrait pas non plus utiliser de javascript, si tout cela est possible avec Discourse, ce que j’ignore. Vous pourriez alors modifier votre client et avoir le contrôle sur celui-ci que vous recherchez.

Est-ce une compréhension juste ?
(PS : C’est aussi au-delà de mes compétences, mais si je me souviens bien, pas 100 % du code de Discourse est open-source. Maintenant, vous ne vous souciez vraiment que de ce qui s’exécute de votre côté, pas de tout ce qui est côté serveur)

1 « J'aime »

Tout sauf une partie de notre code d’hébergement/infrastructure est open-source.

2 « J'aime »

@Jagster

Maybe I was being a bit overdramatic :slight_smile:

Because I get the vast majority of my software using apt install instead of a web browser, and I trust my software distribution (Trisquel) to only distribute free software, this isn’t usually a concern.

Just to be clear, I am not saying customizations are necessarily bad, just that they may be bad if they are nonfree, so a way to be sure you avoid running nonfree software is to disable customizations.

I think all software should be free/libre.

@Jagster @RGJ

To be clear, I am not trying to say Discourse is nonfree. It’s only this particular distribution of Discourse (Discourse Meta) that appears to include nonfree software.

@Jagster @merefield

I should have mentioned in my previous post that another reason I thought this distribution would be free is that the about page for Discourse says " There is only one version of Discourse – the awesome open source version.". This is, again, technically true because the plugins are not part of Discourse, but it felt misleading to me.

Discourse might not have control over third party distributions, but I would have expected Discourse instances hosted by Discourse to be free software if they are saying what they say on the about page. I might have also expected a license and/or framework that would effectively require derivatives to be free software, which there kind of is, since Discourse is GPL, but I guess it doesn’t cover plugins.

@merefield @NateDhaliwal

I think charging money for software or services is fine; usually the “free” in “free software” means “libre”, as in you are free to do what you want with it (copy, modify, etc.), after you get it. It does not necessarily mean that it is “free” as in “gratis” i.e. zero cost.

@NateDhaliwal

Strictly speaking, yes, there is no one stopping me, but it would be illegal, which seems bad. For private use this might work out, but generally public software repos and app stores don’t want to include code illegally, and some people who I might want to use the software may be uncomfortable running illegally copied code. I’m not sure I have the right approach; maybe I should just totally ignore copyright, but that seems like not the best option when it’s feasible to avoid illegal and nonfree software.

No worries! :slight_smile: I don’t think you’re being rude, and I don’t yet feel like we’re going in circles.

@RGJ

What do you mean by this? If the software is free that means I can modify it; therefore I do have control over what it does.

I don’t think free is the same as trusted; perhaps I should have said “arbitrary” instead of “untrusted”, but my point was that most browsers will execute whatever code a webpage gives them, and since I often visit websites I have never visited before, many websites I visit are “untrusted”. For these websites, I have no reason to think they will not send nonfree software.

Regarding NPM, I consider it more trusted than an arbitrary website, but maybe not as trusted as my apt or guix repos. Though, trust is not one-dimensional; although I would not trust a new package on NPM just because it is on NPM, I would trust that when I download JQuery from NPM it really is JQuery. NPM may make mistakes that allow an attacker to replace JQuery, but NPM could take measures to avoid malware that would not be as realistic for site-served JavaScript (e.g. pre-publish automated/manual review, post-publish crowd-sourced review, automated checking that minified/obfuscated scripts match source code, rules against downloading and running arbitrary code at runtime). Importantly, when malware is found on NPM, there’s a third party (NPM, as opposed to the software developer) to report it to so it can be removed. This is not the case for site-served JavaScript - the only one who can remove it is the site operator.

Does that mean the listed commit hash would be incorrect if a server administrator made modifications and didn’t also change the listed commit hash? I thought updating software would change the commit hash automatically, and I (incorrectly?) assumed the listed commit hash would be updated automatically.

Would plugin-injected JavaScript be disabled with safe_mode=no_themes,no_unofficial_plugins?

So, would the only way to avoid nonfree software while using Discourse be to package a Discourse client as a browser extension or Haketilo package or something similar?

I’m not sure what you mean by that considering my original question is about software freedom, and not trust.

I disagree that everyone you listed has to be trusted.

  • The server administrators would not have to be trusted if you don’t run software served by them, for example if you get the Discourse client from GitHub and package it so it can be used with that server.
  • In many cases, people collaborating on software might read some of each others’ commits, so I don’t have to trust all authors individually.

So that would mean the Discourse Meta client is proprietary software, right? Though, it is possible to use safe mode to disable the plugin JS.

Maybe, but that’s not very helpful if I want to avoid nonfree software.

@NateDhaliwal
I have read the license in the Discourse git repo, but (because of the CLA) it does not necessarily apply to derivatives of Discourse outside of that repo. I would like to see a notice on every Discourse distribution that says which of the distributed software is libre. It would even (IMO) fit with the spirit of the GPL: “you must show them these terms so they know their rights”.

@Mevo

Yes, it is possible, to run JavaScript from a browser extension or proxy, such a Haketilo or GreaseMonkey, though this can be very impractical for some software, for example if it updates very often, as would be the case for software where data is baked into the JavaScript software. Haketilo also doesn’t have support for some kinds of scripts, for example scripts with a type of “module”.

Yes, I think your understanding is correct overall. Though packaging the JavaScript as a browser extension or for Haketilo or GreaseMonkey would effectively result in an independent installed client, even though it would be using JavaScript.

@HAWK

I’m guessing you mean “Everything” as in “everything that’s part of Discourse”, as in, not including plugins like discourse-customer-flair-plugin?

Tout ce qui fait partie du produit principal que nous hébergeons (y compris Meta), à l’exception de celle que j’ai notée ci-dessus, est gratuit et open source.

Certains plugins dépendent de plateformes propriétaires pour fonctionner, mais cela n’a rien à voir avec le fait que Discourse soit ou non open source.

5 « J'aime »

Toutes les instances de Discourse hébergées par CDCK ou par nous (je suis le co-fondateur d’une société qui héberge Discourse) exécutent un ou plusieurs plugins propriétaires pour fournir certaines fonctionnalités spécifiques à l’environnement d’hébergement.

Je pense qu’il y a beaucoup de confusion entre une distribution au sens classique (voici un dépôt GitHub et n’hésitez pas à faire ce que vous voulez) et une distribution au sens plus moderne (voici un site Web et il pousse du Javascript dans votre navigateur). De plus, il y a confusion entre Discourse https://github.com/discourse/discourse et Discourse et tous ses plugins et composants de thème de première et tierce partie ajoutés par les administrateurs du site.

C’est un hash de commit, donc si des modifications sont apportées après l’avoir extrait du dépôt et avant de le commiter, alors vous avez déjà une telle situation. Cela n’a pas besoin d’être un acte malveillant, cela se produira également si des correctifs de sécurité sont appliqués (ce qui est généralement fait avant de les commiter dans une branche publique). Maintenant, en général, les correctifs de sécurité ne sont pas côté client, mais ils peuvent introduire du code côté client mis à jour.

Oui - du moins en théorie. Je ne suis pas sûr de la difficulté de contourner cela (délibérément ou accidentellement).

:thinking: Was the iOS SSL Flaw Deliberate? - Schneier on Security

Ce serait une façon, je ne suis pas sûr que ce soit la seule. Si vous faites cela, vous devrez le mettre à jour presque quotidiennement pour éviter de casser des choses.

Même si tout ce sujet est une discussion juridique intéressante, tout cela semble un peu détaché de la réalité.

3 « J'aime »

@HAWK

Existe-t-il un dépôt séparé avec une licence pour les plugins que je n’ai pas trouvés auparavant, comme le plugin discourse-customer-flair ? Le JavaScript servi au navigateur contient un lien vers une carte source mais aucune licence, d’après ce que je peux dire.

Ma compréhension du « code d’hébergement/d’infrastructure » n’inclurait pas le JavaScript côté client ; est-ce correct ?

@RGJ

Je suis d’accord. Je pense que je ne suis pas sûr de ce à quoi le mot « Discourse » s’applique réellement.

Ah, d’accord, donc je suppose qu’il n’y aurait pas vraiment de bon moyen de le savoir.

Bon point, quelqu’un pourrait essayer de cacher une faille comme celle-ci. Mais il semble plus facile d’atténuer ce problème en auditant le code tiers qu’en faisant confiance à chaque personne qui a jamais modifié le code en amont, bien que probablement aucune des deux approches ne soit entièrement pratique.

Oui, bien qu’il soit possible que la plupart des mises à jour puissent être gérées automatiquement.

Je suppose que c’est en grande partie vrai dans ce cas.

1 « J'aime »

Juste pour info, @JacobK1 : Discourse étant bien fait, il n’est pas nécessaire de taguer quelqu’un lorsque vous citez cette personne. La citation elle-même générera déjà une notification :+1: (c’était aussi pour créer des sous-sections, certes :pray: )

2 « J'aime »