Wie kann ich feststellen, ob eine bestimmte Distribution des Discourse-Clients Freie Software ist?

Wenn Leute nicht-freie Software vermeiden wollen, woher wissen wir, ob die Software, die uns eine Website zum Zugriff auf ein Forum, das von Discourse betrieben wird, zur Verfügung stellt, freie Software ist?

Ohne die JavaScript-Client-Software erscheint das Forum schreibgeschützt, daher möchte ich das JavaScript auf der Website ausführen, aber ich sehe hier auf Discourse Meta oder zum Beispiel auf den Purism Forums (ebenfalls von Discourse betrieben) keinen Hinweis darauf, dass die Client-Software freie Software ist. Einige der Skriptdateien haben Links zu Source Maps, aber die von mir geprüften Source Maps enthielten keine Lizenzinformationen.

Ich habe ein älteres Thema gefunden, das erwähnt: „Es gibt nur eine Version von Discourse – die großartige Open-Source-Version“, aber dann habe ich auch ein Thema gefunden, das darauf hindeutet, dass die CLA proprietäre Versionen zulassen könnte, aber es gibt keine Beispiele für proprietäre Versionen.

Eine Discourse-Instanz, die Lizenzinformationen anzeigt, ist das FSF-Mitgliederforum (nur für Mitglieder zugänglich, denke ich), das auf das GitHub Discourse-Repository, ein FSF-Git-Repository und das GitHub-Repository für eine Erweiterung verweist, aber diese Informationen werden erst angezeigt, nachdem die Client-Software bereits ausgeführt wird, sodass sie nicht sehr nützlich sind, um zu entscheiden, ob das Programm überhaupt ausgeführt werden soll.

Gibt es eine Möglichkeit für mich herauszufinden, ob die von einer Discourse-Instanz bereitgestellte Client-Software freie Software ist, ohne diese Software tatsächlich auszuführen? Oder selbst wenn ich die Software ausführen muss, wie bekomme ich den vollständigen lizenzierten Quellcode der Client-Software für eine Discourse-Instanz? Sicherlich ist das ursprüngliche Discourse GitHub-Repository nicht immer ausreichend, da Leute die Software möglicherweise modifiziert haben, bevor sie sie weiterverbreitet haben?

Gibt es alternativ eine andere Discourse-App, die keine Software von den Servern herunterlädt, mit denen sie sich verbindet?

1 „Gefällt mir“

Discourse ist Open Source, daher ist die Nutzung kostenlos. Hosting, entweder selbst oder über CDCK, kostet.

Die Suche nach is discourse free ergab Folgendes:

Sicher ist es das. Und de facto die einzige Quelle, die man verwenden sollte.

4 „Gefällt mir“

Ich vermute, das kannst du nicht.

Einige Installationen werden gehostet und haben proprietäre Teile im Hosting-Stack.

Selbst-Hoster wären töricht, nicht die Standardinstallation zu verwenden, da diese am kostengünstigsten zu unterstützen ist.

Eine Sache, die du vielleicht feststellen wirst, ist, dass einige Websites proprietäre/private Plugins verwenden, die die Plattform auf Ermessen des Administrators installiert.

6 „Gefällt mir“

Ich bin verwirrt von dieser Aussage. Sagen Sie damit, dass Leute, die Discourse hosten, die Software nicht modifizieren, bevor sie sie weiterverbreiten?

Die Leute sind hier als das Team oder als das Unternehmen CDCK bekannt. Natürlich tun sie das, jeden Tag. Es befindet sich in ständiger Entwicklung. Und doch ist es das, was wir verwenden.

Dies kann die Frage aufwerfen:

2 „Gefällt mir“

Deine Erwähnung von Plugins hat mich darüber nachdenken lassen, ob es eine Möglichkeit gibt, die Versionsinformationen zu überprüfen, und ich habe dieses Thema gefunden, das beschreibt, wie man die Versionsinformationen erhält.

Ich kann zum Beispiel sehen, dass diese Instanz Commit 276bc8a565389ea1a145af08ec8e64c1a5bea990 verwendet, das FSF-Mitgliederforum verwendet Commit 7ecaf6295daf8759aa98d00e7035c4dc0f853303, das Purism-Forum verwendet 999aaa35a79ae7c586a91de1f6c1f7b3c8092bd2 und das Exercism-Forum verwendet Commit 1bd9ca11e777f880462ae64c6795ef7de28a8cd2. All dies sind gültige Commits im offiziellen Repository, daher gehe ich davon aus, dass die Instanzen Discourse selbst nicht verändert haben (obwohl sie möglicherweise Plugins hinzugefügt haben).

Ich denke, das lässt Plugins und Themes übrig. Es sieht so aus, als ob man vielleicht den Namen der Plugins sehen kann, indem man nach “data-discourse-entrypoint”-Attributen in Plugin-Skripten sucht, aber ich sehe keinen Versionsidentifikator. Kennst du eine Möglichkeit, die Liste der installierten Plugins zu erhalten?

Sie könnten sich die JavaScript-Pakete ansehen, um einen Hinweis zu erhalten, aber eine beliebige Anzahl von Plugins könnte im Backend installiert sein, fernab von neugierigen Blicken.

2 „Gefällt mir“

Was ich mit „die Software vor der Weiterverbreitung ändern“ meinte, war, dass Leute, die die Software auf öffentlichen Websites, wie zum Beispiel Foren.puri.sm, weiterverbreiten, ihre Version ändern könnten, ohne Änderungen in das Haupt-Git-Repository einzureichen. Wenn sie eine Vereinbarung mit Discourse treffen würden, könnten sie diese Änderungen als nicht-freie Software veröffentlichen, getrennt vom Haupt-Discourse-Git-Repository.

Die Änderungsgeschwindigkeit des Haupt-Repositorys ist so hoch, dass es teuer wäre, eine Fork aktuell zu halten.

Genau deshalb sind Plugins eine beliebte Lösung für Erweiterungen.

5 „Gefällt mir“

Großes Wenn, und ich glaube nicht, dass das passieren würde – und welche Vereinbarung, Discourse ist Open Source. Aber CDCK weiß das besser. Ich schätze, es gibt einige Forks da draußen, aber sind diese in Produktion… Ich bezweifle das. Aber wie Robert sagte, warum, wenn Dinge mit Komponenten und Plugins erledigt werden können.

2 „Gefällt mir“

Daher ist der einzige Weg, Plugins zu überprüfen, wahrscheinlich:\n* Richten Sie Ihre eigene Discourse-Instanz ein\n* Versuchen Sie, dieselben Plugins wie auf allen Remote-Instanzen zu installieren, mit denen Sie interagieren möchten\n* Überprüfen Sie, ob das Plugin-JavaScript auf meiner Instanz dasselbe ist wie auf ihrer Instanz\n\nIch könnte auch versuchen, die Plugin-Software gar nicht erst auszuführen und nur die Skripte zu verwenden, die Teil von Discourse selbst sind.\n\nNatürlich habe ich keine Möglichkeit, ihr Backend zu überprüfen, aber ich kümmere mich nur um die Client-Software, wenn ich mich mit dem Server eines anderen verbinde.

Vielleicht interessiert Sie auch der abgesicherte Modus, der JavaScript-Anpassungen deaktiviert.

2 „Gefällt mir“

Nein. Sie können nicht sehen, was auf dem Server geschieht. Es kann viele Änderungen geben, die nicht über die öffentliche API zugänglich sind oder nur sehr schwer zu entschlüsseln sind.

Ein Laie ist nicht darüber informiert, was auf dem Server vor sich geht.

3 „Gefällt mir“

Ich denke, dies, kombiniert mit den Versionsinformationen, reicht aus, um beliebige Discourse-Distributionen zu verwenden und gleichzeitig die Ausführung von nicht freier Software zu vermeiden. Man kann überprüfen, ob der Commit im offiziellen GitHub-Repository vorhanden ist, und dann entweder sicherstellen, dass der sichere Modus immer aktiviert ist, oder nur Skripte, die im sicheren Modus erscheinen, in einem Tool wie LibreJS „whitelistet“.

Nein. Das ist es nicht. Es deaktiviert nur clientseitige Änderungen.

3 „Gefällt mir“

Die clientseitigen Änderungen sind alles, worum ich mich kümmere, da ich den serverseitigen Code nicht auf meinem Computer ausführen werde.

Wenn ich einen Discourse-Server betreiben würde, würde ich entscheiden, welche Plugins installiert werden sollen, und einfach keine Plugins installieren, denen eine Lizenz fehlt.

Wenn ich mich mit dem Server eines anderen verbinde, wird von mir erwartet, dass ich die Software ausführe, die sie mir geben, die möglicherweise keine leicht zu findende Lizenz hat.

Ich denke, die meisten Installationen werden vorhersehbare Plugin-Sets haben. Aber nicht alle. Sie werden es nie wissen, es sei denn, Sie werden ein privilegierter Administrator der Website.

2 „Gefällt mir“

Um sicherzugehen, dass ich es richtig verstehe: Wenn eine Änderung nicht clientseitig ist, bedeutet das, dass sie keinen Einfluss auf den Code hat, den ein normaler Benutzer (d. h. kein Administrator) der Discourse-Distribution ausführt. Ist das richtig?

ausführen, aber nicht den Verarbeitungsregeln von Informationen unterliegen, mit denen sie interagieren könnten.
ein Server könnte im Hintergrund all Ihre Details an Facebook senden und dafür bezahlt werden :wink:

2 „Gefällt mir“