JacobK1
(Jacob)
1
非自由ソフトウェアの実行を避けたい人にとって、Discourse を利用したフォーラムにアクセスするためにウェブサイトが提供するソフトウェアがフリーソフトウェアであるかどうかを、どのように判断できるでしょうか?
JavaScript クライアントソフトウェアなしでは、フォーラムは読み取り専用のように見えます。そのため、ウェブサイト上の JavaScript を実行したいのですが、Discourse Meta や、例えば Purism Forums(これも Discourse を利用しています)のどちらにも、クライアントソフトウェアがフリーソフトウェアであるという表示がありません。スクリプトファイルの一部にはソースマップへのリンクがありますが、確認したソースマップにはライセンス情報が含まれていませんでした。
古いトピックで「「Discourse にはバージョンは一つしかない――素晴らしいオープンソース版だ」」という言及を見つけましたが、その一方で あるトピック では、CLA がプロプライエタリ版を許可する可能性があることを示唆していますが、プロプライエタリ版の例はありません。
ライセンス情報を示している Discourse インスタンスの一つに FSF メンバーフォーラム(メンバーのみアクセス可能だと思います)がありますが、これは GitHub Discourse リポジトリ、FSF の git リポジトリ、および拡張機能の GitHub リポジトリにリンクしていますが、この情報はクライアントソフトウェアが実行された後にのみ表示されるため、そもそもプログラムを実行するかどうかを判断するにはあまり役立ちません。
実際にそのソフトウェアを実行することなく、Discourse インスタンスによって提供されるクライアントソフトウェアがフリーソフトウェアであるかどうかを判断する方法はありますか?あるいは、ソフトウェアを実行する必要がある場合でも、Discourse インスタンスのクライアントソフトウェアの完全なライセンス付きソースコードを入手するにはどうすればよいでしょうか?人々が再配布する前にソフトウェアを変更している可能性があるため、元の Discourse GitHub リポジトリが常に十分であるとは限りませんよね?
あるいは、接続先のサーバーからソフトウェアをダウンロードしない別の Discourse アプリはありますか?
「いいね!」 1
Jagster
(Jakke Lehtonen)
2
Discourseはオープンソースなので、利用は無料です。ホスティングは、自社で行うかCDCKを使用するかによって費用がかかります。
「discourseは無料か」で検索した結果:
はい、そうです。そして、事実上、使用すべき唯一の情報源です。
「いいね!」 4
できないと思います。
一部のインストールはホストされており、ホスティングスタックに独自のビットが含まれている場合があります。
セルフホスティング者は、サポートが最も安価である標準インストールを使用しないのは愚かでしょう。
サイトによっては、管理者の裁量でインストールできる独自の/プライベートプラグインを使用している場合があります。
「いいね!」 6
JacobK1
(Jacob)
4
この発言について混乱しています。Discourseをホストしている人々は、ソフトウェアを再配布する前に変更しないと言っているのですか?
Jagster
(Jakke Lehtonen)
5
ここでは、チームまたは会社CDCKとして知られています。もちろん、毎日行っています。それは絶え間ない開発の下にあります。それでも、それが私たちが使用しているものです。
これにより、次の質問が開かれる可能性があります。
「いいね!」 2
JacobK1
(Jacob)
6
プラグインについて言及されたことで、バージョン情報を確認する方法があるかどうかを考えました。そして、バージョン情報を取得する方法を説明しているこちらのトピックを見つけました。
例えば、このインスタンスがコミット 276bc8a565389ea1a145af08ec8e64c1a5bea990 を使用していること、FSFメンバーフォーラムがコミット 7ecaf6295daf8759aa98d00e7035c4dc0f853303 を使用していること、Purismフォーラムが 999aaa35a79ae7c586a91de1f6c1f7b3c8092bd2 を使用していること、そしてExercismフォーラムがコミット 1bd9ca11e777f880462ae64c6795ef7de28a8cd2 を使用していることがわかります。これらはすべて公式リポジトリの有効なコミットなので、インスタンスはDiscourse自体を変更していない(ただし、プラグインを追加している可能性はある)と思います。
プラグインとテーマが残っていると思います。プラグインスクリプトの「data-discourse-entrypoint」属性を探すことでプラグインの名前を見ることができるようですが、バージョン識別子が見つかりません。インストールされているプラグインのリストを取得する方法をご存知ですか?
JavaScriptパッケージを見ると手がかりが得られるかもしれませんが、バックエンドには多くのプラグインがインストールされている可能性があり、それらは見えないようになっています。
「いいね!」 2
JacobK1
(Jacob)
8
「再配布する前にソフトウェアを変更する」という意味は、フォーラムなどの公開ウェブサイトでソフトウェアを再配布する人が、メインのgitリポジトリに変更を提出することなく、自分のバージョンを変更できるということでした。もし彼らがDiscourseと契約を結べば、その変更をメインのDiscourse gitリポジトリとは別に、非フリーソフトウェアとしてリリースすることができます。
メインリポジトリの変更速度が非常に速いため、フォークを維持するのはコストがかかりすぎます。
だからこそ、プラグインは拡張機能の一般的なソリューションなのです。
「いいね!」 5
Jagster
(Jakke Lehtonen)
10
それは大きな「もし」であり、起こるとは思いません — そしてどのような合意でしょうか、Discourseはオープンソースです。しかし、CDCKはそれを知っている方が良いでしょう。おそらくいくつかのフォークがあると思いますが、それらは本番環境にあるのでしょうか…疑わしいです。しかし、Robertが言ったように、コンポーネントやプラグインでできることをなぜわざわざ行う必要があるのでしょうか。
「いいね!」 2
JacobK1
(Jacob)
11
したがって、プラグインを確認する唯一の方法は次のようになります。
- 独自のDiscourseインスタンスをセットアップする
- やり取りしたいリモートインスタンスと同じプラグインをインストールしてみる
- プラグインのJavaScriptが自分のインスタンスと相手のインスタンスで同じかどうかを確認する
プラグインソフトウェアを完全に実行しないようにすることもできます。Discourse自体に含まれるスクリプトのみを使用します。
もちろん、バックエンドを確認する方法はありませんが、誰かのサーバーに接続するときはクライアントソフトウェアのみを気にします。
Moin
12
JavaScript カスタマイズを無効にするセーフモードにも興味があるかもしれません。
「いいね!」 2
merefield
(Robert)
13
いいえ。サーバーで何が起こっているかはわかりません。公開APIで公開されていない、または解読が非常に困難な変更が多く存在する可能性があります。
一般の人は、サーバーで何が起こっているかを知ることはできません。
「いいね!」 3
JacobK1
(Jacob)
14
これで、バージョン情報と組み合わせることで、非自由ソフトウェアを実行することを避けながら、任意のDiscourseディストリビューションを使用できると思います。コミットが公式のGitHubリポジトリにあることを確認し、セーフモードが常に有効になっていることを確認するか、セーフモードで使用されるスクリプトのみを(LibreJSのようなツールで)「ホワイトリスト」に登録することができます。
merefield
(Robert)
15
いいえ、違います。クライアント側の変更のみを無効にします。
「いいね!」 3
JacobK1
(Jacob)
16
クライアント側の変更だけが重要です。なぜなら、サーバー側のコードを自分のコンピューターで実行しないからです。
JacobK1
(Jacob)
17
もし私がDiscourseサーバーを運用するなら、どのプラグインをインストールするかを選択し、ライセンスが見つからないプラグインはインストールしません。
他人のサーバーに接続する場合、相手が提供するソフトウェアを実行することが期待されますが、そのソフトウェアにはライセンスが簡単に見つかる場所にない場合があります。
merefield
(Robert)
18
ほとんどのインストールでは、プラグインのセットは予測可能だと思います。しかし、すべてではありません。サイトの特権管理者にならない限り、決してわかりません。
「いいね!」 2
JacobK1
(Jacob)
19
理解していることを確認させてください。変更がクライアントサイドでない場合、それはDiscourseディストリビューションの通常のユーザー(つまり管理者ではないユーザー)が実行するコードに影響しないということでしょうか。それで合っていますか?
merefield
(Robert)
20
実行 されるが、やり取りする可能性のあるあらゆる情報の処理においては、その対象とはならない。
サーバーは、バックグラウンドであなたのすべての詳細をFacebookに送信し、報酬を得ることができる 
「いいね!」 2