# Discourseクライアントのディストリビューションがフリーソフトウェアかどうかの見分け方

**URL:** https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374
**Category:** Support
**Created:** [2024 年 11 月 15 日午後 5:33 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374 "2024-11-15T17:33:50Z")
**Posts on this page:** 20
**Page:** 2

<div class="post-metadata">

### Author: ![JacobK1](https://avatars.discourse-cdn.com/v4/letter/j/7feea3/32.png) [@JacobK1](https://meta.discourse.org/u/JacobK1)
#### Post date: [2024 年 11 月 15 日午後 9:38 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/21 "2024-11-15T21:38:26Z")

</div>

また、セーフモードを使用して、他の Discourse ディストリビューションがどのような変更を加えたかのアイデアを得ることもできます。

- Purism には、テーマ スクリプトがいくつかあるだけです（セーフモードはすべてのテーマをブロックすると思われるため、これらは公式の Discourse の一部である可能性があります）。また、内部（HTML ファイルの一部であり、外部 JS ファイルではない）の JavaScript が 1 つあり、`const DELAY_TARGET=2e3,POLLING_INTERVAL=50,splashS` から始まります…
- Exercism には、後でコアに追加された discourse-spoiler-alert プラグインと思われるものと、Purism とまったく同じ内部 JS があります。
- FSF メンバー フォーラムには、他の 2 つとまったく同じ内部 JS があります。
- Discourse Meta（このフォーラム）には、多くの JS の違いがあるようです。
  - discourse-activity-pub
  - discourse-customer-flair-plugin（これについてはどこにもライセンスが見つかりませんでした）
  - discourse-deprecation-collector
  - discourse-doc-categories
  - discourse-new-features-feeds（これもライセンスが見つかりませんでした）
  - ソース マップへのリンクさえ存在しないものを含む、さらに多くのスクリプト。

したがって、ほとんどのサードパーティ ディストリビューション（私の小さなサンプル サイズ 3 に基づく）は、メインライン Discourse にかなり近いように思われますが、このディストリビューションには、ほとんどのディストリビューションには含まれないプラグインが含まれているように見えます。それらのすべてについて、ライセンスされたソース コードはどこで見つけられますか? メイン リポジトリにありますか? メイン リポジトリでそれらの名前の一部を grep しても見つけられなかったかもしれませんが、見落とした可能性があります。

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [2024 年 11 月 15 日午後 10:30 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/22 "2024-11-15T22:30:43Z")

</div>

ここから明らかなように、それらのほとんどはサードパーティ製ではなく、ファーストパーティ製です😏

カスタマイズカテゴリの #Customization > Plugin と #Customization > Theme component をチェックしてみてください。例えば、#Development や #Documentation も興味深いかもしれません。

---

<div class="post-metadata">

### Author: ![JacobK1](https://avatars.discourse-cdn.com/v4/letter/j/7feea3/32.png) [@JacobK1](https://meta.discourse.org/u/JacobK1)
#### Post date: [2024 年 11 月 15 日午後 10:36 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/23 "2024-11-15T22:36:18Z")

</div>

フォーラム全体で「discourse-new-features-feeds」（例）を検索しましたが、何も見つかりませんでした。一部の拡張機能は、プラグインディレクトリ、GitHub、またはフォーラムで見つけることができましたが、discourse-new-features-feedsとdiscourse-customer-flair-pluginについては何も見つけられませんでした。すべてのプラグ係数スクリプトを確認したわけではないので、他にも見つけられないものがあるかもしれません。

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [2024 年 11 月 15 日午後 10:41 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/24 "2024-11-15T22:41:28Z")

</div>

理由があるのかもしれません。例えば、Meta独自のカスタマイズが公開されていない、あるいはDiscourseのリポジトリを十分に調べなかったのかもしれませんね 🤷‍♂️

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [2024 年 11 月 15 日午後 11:20 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/25 "2024-11-15T23:20:12Z")

</div>

Enterprise のお客様で、Discourse にフォーラムを特別にカスタマイズしてもらった可能性もあります。  
また、クライアント側のカスタマイズを確認するためにセーフモードを使用したい場合、それは無効になってしまうのではないでしょうか？そもそも、これらのサイトで有効にするにはどうすればよいのでしょうか？

---

<div class="post-metadata">

### Author: ![Mevo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mevo/32/187732_2.png) [@Mevo](https://meta.discourse.org/u/Mevo)
#### Post date: [2024 年 11 月 16 日午後 7:12 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/26 "2024-11-16T19:12:50Z")

</div>

> [@JacobK1](#):
>
> フリーソフトウェアを実行したくない人向け

興味本位で、正確にはどのような論理なのか疑問に思っています。あなたが提示している懸念事項を持ってインターネットを閲覧することはできませんよね？

「ライセンス」について話していますが、単純なユーザーとして特定のフォーラムを使用するあなたのライセンスは、フォーラムソフトウェアを実行するライセンス（誰かがそれで別のフォーラムをセットアップしたい場合）とは異なります。ユーザーが後者を気にするのはなぜでしょうか？彼が従いたい原則のためですか？再配布されないカスタマイズは「プロプライエタリ」になるでしょう。これは、どこから始まってどこで終わるのかという疑問を投げかけます。

JavaScriptとそのブラウザで実行できる可能性（そのリスクと可能性はしばしば議論されています。制限されているはずです）について警戒することができます。ただし、DiscourseがJavaScriptなしで実行できるかどうかはわかりません。または少なくとも正しく実行できるかどうか。いつでも試すことができます。たとえば、人気の「NoScript」ブラウザ拡張機能があります。

まだ理由がわかりません。悪意のあるコードについてですか？その場合、フォーラムが非改変バージョンを実行すると述べているライセンスで気分が良くなるというのは、私にはあまり意味がありません。それとも何についてですか？

---

<div class="post-metadata">

### Author: ![JacobK1](https://avatars.discourse-cdn.com/v4/letter/j/7feea3/32.png) [@JacobK1](https://meta.discourse.org/u/JacobK1)
#### Post date: [2024 年 11 月 17 日午前 6:29 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/27 "2024-11-17T06:29:21Z")

</div>

> [@Mevo](#):
>
> 純粋な好奇心から、その全体的な根拠が正確に何であるかを知りたいと思います。

一般的に、私は非自由ソフトウェアを実行することを避けたいと考えています。主な理由は、自分のコンピューターで実行されるソフトウェアを自分で制御できるべきだと考えていること、そしてもう一つの理由は、修正することが違法かもしれないバグという考えが気に入らないことです。また、数百もの異なる独立したウェブサイトからソフトウェアをダウンロードするのではなく、第三者の監視や説明責任のない、少数の信頼できるリポジトリからソフトウェアを入手することが良いことだと考えています。そのため、信頼できるリポジトリのために、私が使用するソフトウェアをパッケージ化する自由があることは私にとって重要です（ただし、現在の技術ではサイトで提供されるJavaScriptにとっては非常に非現実的です）。

他人のコンピューターで実行されるソフトウェアを私が制御すべきだとは思いません。なぜなら、サーバーの運用者がその制御を持つべきだと考えており、複数のユーザーがソフトウェアを完全に制御できるようにすることは理にかなっていないように思えるからです。

> [@Mevo](#):
>
> あなたが懸念しているような懸念を抱えてインターネットを閲覧することは、単に不可能ですよね？

いいえ、インターネット上で非自由ソフトウェアを実行することを避けることは比較的簡単です。信頼できないソースから任意のコードを自動的にダウンロードして実行するプログラムを使用しない場合、またはそのようなプログラムをそうしないように変更した場合（たとえば、ウェブブラウザにLibreJSをインストールするなど）は、比較的簡単です。

> [@Mevo](#):
>
> あなたは「ライセンス」について話していますが、単純なユーザーとしての特定のフォーラムを使用するあなたのライセンスは、実際にフォーラムソフトウェアを実行するライセンス（誰かがそれを使って別のフォーラムをセットアップしたい場合）とは異なるでしょう。

私の知る限り、フォーラムソフトウェアを実行することは、フォーラムのほとんどの機能を使用するために必要ですが、投稿を読むことはそれなしでも可能です。アカウントを登録してトピックを投稿したい場合、フォーラムソフトウェアを実行する必要があるようです。ほとんどの人は、ほとんどのブラウザがユーザーに通知することなく、ウェブサイトが送信する任意のソフトウェアをダウンロードして実行するため、それに気づいていません。

フォーラムソフトウェアの一部はサーバー上で実行されており、Discourseインスタンスは必ずしもそのソフトウェアを一切配布するわけではありません。つまり、インスタンスがサーバー側に追加した非自由ソフトウェアを必ずしも入手できない可能性があります。そのため、そのようなインスタンスを避けるように努めていません。

> **定義に関する補足**
>
> > [@Mevo](#):
> >
> > 再配布されないカスタマイズは「プロプライエタリ」になるでしょうね。
> 
> 私の見解では、配布されないソフトウェアは「プロプライエタリ」ですが、それは単一の「所有者」（作者）がいるためですが、同時に「自由」でもあります。なぜなら、そのすべてのユーザー（作者一人だけ）は、それを使って何をしたいか自由にできるからです。まあ、サーバーとやり取りする人々は、サーバー上で実行されるソフトウェアの「ユーザー」であると言うこともできるかもしれませんが、代わりにどのような言葉を使うべきか確信が持てません。電話網や他人の電話で実行されているソフトウェアの「ユーザー」であると言うこともできるかもしれませんが、誰かに電話をかける場合。

> [@Mevo](#):
>
> JavaScriptと、それがブラウザで実行できる可能性について懸念を抱くことはできます（そのリスクと可能性についてはしばしば議論されています。制限されているはずです）。ただし、Discourseがそれなしで実行できるかどうかはわかりません。または、少なくとも正しく実行できるかどうか。試してみることはいつでもできます。たとえば、人気の「NoScript」ブラウザ拡張機能があります。

はい、NoScriptをインストールしており、クライアントサイドのDiscourseソフトウェアをブロックすると、もちろんDiscourseはそれなしでは「実行」できません。なぜなら、ブラウザがスクリプトを実行しないようにしたからです。私のコンピューターで実行されないサーバーサイドのソフトウェアは、NoScriptによって実行が阻止されません。この状態では、Discourseサーバーソフトウェアによって提供されるトピックやコメントは表示可能ですが、登録して投稿するにはクライアントサイドのJavaScriptソフトウェアを使用する必要があるようです。

> [@Mevo](#):
>
> 私はまだその理由について疑問に思っています：潜在的な悪意のあるコードについてですか？その場合、フォーラムが非改変バージョンを実行していると記載されたライセンスを持っている方が気分が良いというのは、私にはあまり意味がありません。

マルウェアに関して言えば、自由ソフトウェアプログラムが悪意のあるソフトウェアである場合、誰かがそれをマルウェアではないように変更し、その変更されたバージョンを代わりに配布することができます。サイトで提供されるJavaScriptの場合、これは現在やや非現実的です。理想的には、ソフトウェアが自由ソフトウェアであることを直接述べるライセンスがあれば、たとえソフトウェアが変更されたとしても、自由ソフトウェアとして使用することが合法になるでしょう。現状では、使用しているディストリビューションが、使用しているソフトウェアのバージョンについて「嘘をついていない」（たとえば、Discourseサーバーソフトウェアを変更して、実際には別のコミットが使用されているのに、あるコミットが使用されていると主張するなど）ことを信頼する必要があります。

> [@Mevo](#):
>
> それとも何についてですか？

この応答は少し長くなってしまったかもしれませんが、核心は、私はソフトウェアの自由を重視しており、そのため自分のコンピューターで非自由ソフトウェアを実行することを避けたいということです。

---

<div class="post-metadata">

### Author: ![JacobK1](https://avatars.discourse-cdn.com/v4/letter/j/7feea3/32.png) [@JacobK1](https://meta.discourse.org/u/JacobK1)
#### Post date: [2024 年 11 月 17 日午前 6:47 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/28 "2024-11-17T06:47:33Z")

</div>

> [@NateDhaliwal](#):
>
> 彼らはエンタープライズ顧客で、Discourseにフォーラムを特別にカスタマイズしてもらったのかもしれません。

この場合、「彼ら」はDiscourse Metaですよね。それはDiscourse（会社）の一部ではありませんか？

> [@NateDhaliwal](#):
>
> また、クライアントサイドのカスタマイズを表示するために[セーフモード](https://meta.discourse.org/t/53504?silent=true)を使用したい場合、それは無効になってしまうのではないでしょうか？

はい、私が言いたかったのは、セーフモードを使用するとカスタマイズを無効にでき、両方のケースでブラウザに送信されるソフトウェアを比較できるということです。違いは、カスタマイズとテーマです。

> [@NateDhaliwal](#):
>
> そもそもこれらのサイトでどのように有効にするのですか？

セーフモードは、`/safe-mode` に移動する（例：`http://meta.discourse.com/safe-mode`）ことで有効にでき、そこでオプションを選択します。そのページはJavaScriptを必要としないため、NoScript、LibreJS、Haketiloなどの拡張機能を使用してJSをブロックしたり、Firefoxベースのブラウザの設定で`javascript.enabled`をfalseに設定したりして、セーフモードを有効にすることができます。

この時点で、両方のページのスクリプトタグを比較して、セーフモードで削除されたものを確認できます。私は次のようなスクリプトを使用しました。

> **script-diff.js**
>
> ```javascript
> // SPDX-FileCopyrightText: 2024 Jacob K
> //
> // SPDX-License-Identifier: CC0-1.0
> 
> // スクリプトが多い方のページで
> const scriptSrcArr = [];
> for (script of document.scripts) {
> if (script.src) {
> scriptSrcArr.push(script.src);
> } else {
> scriptSrcArr.push(script.textContent);
> }
> }
> 
> console.log(scriptSrcArr)
> 
> // スクリプトが少ない方のページで（最初のページで配列を右クリックして「オブジェクトをコピー」をクリックする必要があります）
> scriptSrcArr = PASTE_OBJECT_FROM_OTHER_PAGE_HERE
> for (script of document.scripts) {
> if (!scriptSrcArr.includes(script.src)) {
> console.info(script)
> }
> }
> // 最初のページのスクリプトは2番目のページのスクリプトのスーパーセットであると仮定しています
> 
> ```

@Jagster（Discourse（クールな提案機能！）が提案したように、編集による返信を試しています）

> [@NateDhaliwal](#):
>
> 彼らはエンタープライズ顧客で、Discourseにフォーラムを特別にカスタマイズしてもらったのかもしれません。

> [@Jagster](#):
>
> 例えば、Meta自身のカスタマイズが公開されていない理由があるのかもしれません。あるいは、Discourseのリポジトリを十分に調べていないだけかもしれませんね 🤷‍♂️

これは、meta.discourse.orgによって配布されているDiscourseが非フリーソフトウェアであることを示唆しており、そうなると「Discourseの全コードベースは公開されており、自由に利用できます」や「Discourseは100％無料の[オープンソース](https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md)フォーラムソフトウェアです。」（どちらもwww.discourse.orgから）という主張は、技術的にはソフトウェアとプラグインが同じものではないため、たとえ真実であっても誤解を招くように思えます。非フリーソフトウェアを実行するようにだまされたような気分です 🙁

この主張は、既存のインスタンスに参加するのではなく、Discourseインスタンスをホストしようとしている人々を対象としているのだと思います。

私の考えが間違っていて、リポジトリを十分に調べていなかっただけであることを願っています。

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [2024 年 11 月 17 日午前 7:51 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/29 "2024-11-17T07:51:01Z")

</div>

> [@JacobK1](#):
>
> まるで非自由ソフトウェアを実行するように騙されたような気分です。

インターネットやその中のアプリの仕組みについての発言なので、顔文字なしで、あなたは本当にそんな風に感じているに違いありません。

あなたはカスタマイズは悪いと言いました。そして、ベースがオープンソースであれば、すべての追加機能も無料であるべきだと。WordPressがそれを使用したかもしれませんが、もちろん`wordpress.com`ではありません。しかし、私のWordPressサイトを訪れると、多くのカスタム作業があります。プロプライエタリなもの、オープンなもの、カスタムなもの、そして私自身によるものがあります。そして、この現実で2つのことが起こることはありません。

- カスタム作業のすべてのコードが公開されること
- 有効なライセンスを持っているかどうかをあなたや他の訪問者に伝えること

しかし、なぜDiscourse、WordPress、Moodleなどが、一部の追加機能が無料でない場合に無料であってはならないのか、理解に苦しんでいます。その考え方の論理が理解できません。

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [2024 年 11 月 17 日午前 7:51 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/30 "2024-11-17T07:51:14Z")

</div>

> [@JacobK1](#):
>
> その主張は、実際にDiscourseインスタンスをホストすることを意図している人向けです。

まさにその通りです 👍

ホスティング業者がその後、それを何に適合させるかは予測できません。

確かに、さらに、例えば、ホスティング業者の裁量で以下を追加する可能性があります。

- 広告
- サブスクリプション

「ソフトウェア」は「無料で使用可能」のままであっても、一部の機能は制限され、有料サブスクライバーのみ広告をオフにできる可能性があります。

誰もが無料でDiscourseインスタンスを実行するための無制限の資金を持っているわけではありません。多くのサイトは、請求書を支払うために収益を上げる必要があります。

Discourseの実行は、規模が大きくなると決して「無料」ではありません。ホスティング業者は、ドメイン名、VPS、および電子メールサービスのコストを支払う必要があります。

（そして、そもそもDiscourseを開発するためのコストについては触れないでおきましょう！）

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [2024 年 11 月 17 日午前 10:27 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/31 "2024-11-17T10:27:34Z")

</div>

> [@JacobK1](#):
>
> この場合、「彼ら」とは Discourse Meta のことです。

なるほど、あなたの言いたいことは理解できたと思います。

> [@JacobK1](#):
>
> 非フリーソフトウェアです

とんでもない！コードは常に無料です。

* * *

独自の Discourse サイトの管理者は、独自のフォーラムをカスタマイズする自由があります。プラグイン、テーマ、TC は常にオープンソースである必要はありません。Discourse はそれで問題ありません。カスタマイズを接続するために、公開リポジトリの代わりにプライベートリポジトリを使用する方法があるからです。  
プラグインも同様です。ただし、非常に、非常に、非常にまれな場合（おそらくほとんどない！）を除き、そのようなカスタマイズは有料になることはありません[^有料のコミッションによる場合を除く。それはあなたのスポンサーになるという選択です]。したがって、「非フリー」なものはありません。すべて無料です。  
私の言いたいのは、オープンソースソフトウェアは無料であるということです。プラグインは無料です。それらを使用するかどうかはあなたの選択です。テーマや TC なども同様です。ただし、オープンソースではないものは有料になる可能性がありますが、管理者はそれらを無料で使用できるように _選択_ しています。あなたがクローズドソースのカスタマイズのコピーを、あなたの能力の限り作成して自分で使用することを妨げるものはありません。  
Discourse は無料であり、公開されているカスタマイズ[^つまり、ここで Meta や GitHub で公開されているもの]は無料であり、プライベートなカスタマイズも _使用_ する上では無料です（少なくともかなりの場所ではそうですが、

> [@merefield](#):
>
> 一部の機能は制限されており、広告は有料加入者のみオフにすることができます。

。ソースコードの所有者に支払うことは、別の話ですが。

基本的に、自分でプラグイン/テーマ/TC を作成して配布しない限り、カスタマイズは常に無料でインストールできます。誰もあなたを止めることはありません。

* * *

失礼に聞こえたり、同じことを繰り返し言っているように聞こえたりしたらごめんなさい。

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [2024 年 11 月 17 日午後 12:47 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/32 "2024-11-17T12:47:50Z")

</div>

> [@JacobK1](#):
>
> CLAはプロプライエタリなバージョンを許可する可能性がある

しかし、それらはオープンソースバージョンの「上に」乗るものであり、CLAが存在するだけでDiscourseが非フリーになるわけではありません。

> [@Jagster](#):
>
> Discourseはオープンソースなので、利用は無料です。ホスティングは、自社またはCDCKの利用で費用が発生します。

これは金銭的な意味での無料ではなく、「制限のないライセンスが存在する」という意味での無料です。[What is Free Software? - GNU Project - Free Software Foundation](https://www.gnu.org/philosophy/free-sw.html)

> [@NateDhaliwal](#):
>
> オープンソースソフトウェアは無料になる

必ずしもそうとは限りません。繰り返しますが、これは価格ではなく、自由についての話です。FSFの定義によれば、自由ソフトウェアと見なすにはライセンスが制限的すぎるオープンソースプロジェクトも存在します。例としては、MongoDBやElasticSearchが挙げられます。

> [@JacobK1](#):
>
> 非フリーソフトウェアの実行は避けたいです。主な理由は、自分のコンピュータで実行されるソフトウェアを自分で制御できるべきだと考えているからです。

フリーソフトウェアを実行することが、それを制御できることを意味するわけではありません。

> [@JacobK1](#):
>
> インターネット上で非フリーソフトウェアを実行しないようにするのは比較的簡単です。信頼できないソースから任意のコードを自動的にダウンロードして実行するプログラムを使用しない限りは。

つまり、「信頼できる」と「フリー」を混同しているようですね。サーバー管理者がDiscourseをビルドする際、ビルドプロセスではNPMからさまざまなパッケージがダウンロードされます。それらは常に信頼できるのでしょうか？（歴史が教えてくれたように、そうではありません - [例](https://medium.com/intrinsic-blog/compromised-npm-package-event-stream-d47d08605502) と [別の例](https://therecord.media/malware-found-in-npm-package-with-millions-of-weekly-downloads)）。

> [@JacobK1](#):
>
> したがって、インスタンスはDiscourse自体を変更していない（プラグインを追加した可能性はあるが）と推測します。

「推測」ですか？ 🤔 サーバー管理者はコミットハッシュを変更せずに変更を加えることができます。また、プラグインもJavaScriptコードを挿入する可能性があります。

> [@JacobK1](#):
>
> これとバージョン情報があれば、非フリーソフトウェアの実行を避けながら、任意のDiscourseディストリビューションを使用するのに十分です。

残念ながら、それは真実ではありません。

これはフリーか非フリーか、オープンソースかクローズドソースかの問題ではなく、信頼の問題です。

Discourseインスタンスにアクセスする場合、以下のものを信頼する必要があります。

- サーバー管理者
- Discourseのgithub組織のコミット権限を持つすべての人
- プラグインリポジトリのコミット権限を持つすべての人
- githubのすべての人
- NPMソフトウェアチェーン全体
- 使用されているNPMリポジトリのコミット権限を持つすべての人
- ブラウザソフトウェアを制御できるすべての人
- SSL証明書とトラストチェーンを提供した会社

これは少なくとも数千人になるでしょう。

> [@JacobK1](#):
>
> したがって、ほとんどのサードパーティディストリビューション（私の小さなサンプルサイズ3に基づくと）は、メインラインDiscourseにかなり近いように見えますが、このディストリビューションにはほとんどのディストリビューションに含まれないプラグインが含まれているように見えます。それらすべてのライセンス付きソースコードはどこで見つけられるかご存知ですか？メインリポジトリにあるのでしょうか？

プラグインとテーマコンポーネントは別のリポジトリで見つけることができます。  
すべてのプラグインがオープンソースであるわけではありません（例：discourse-customer-flair-pluginはそうではないと推測されます）。つまり、そういうことです。Metaの使用を中止する必要があります 😉 もちろん冗談です。私の言いたいのは、すべてがオープンソースまたはリブレでなくても、十分な信頼が存在しうるということです。

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [2024 年 11 月 17 日午後 2:01 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/33 "2024-11-17T14:01:12Z")

</div>

何か、@JacobK1 さん、Discourse のライセンスを読みましたか？

> **[GitHub - discourse/discourse: A platform for community discussion. Free, open,...](https://github.com/discourse/discourse?tab=GPL-2.0-1-ov-file#)**
>
> A platform for community discussion. Free, open, simple.

関連する可能性のある点をいくつか引用します。

> GNU 一般公衆利用許諾契約は、自由なソフトウェアを共有したり変更したりする自由を保証することを目的としています。つまり、ソフトウェアがすべてのユーザーにとって自由であることを保証します。

> プログラムまたはその一部を、プログラムに基づく作業を形成するように、コピーまたはコピーを変更し、セクション 1 の条件に基づいてそのような変更または作業をコピーおよび配布することができます。

> [@JacobK1](#):
>
> 理想的には、ソフトウェアがフリーソフトウェアであることを直接述べるライセンスがあれば、ソフトウェアが変更された場合でも、フリーソフトウェアとして使用することが合法になります。

これは上記およびその上の引用で回答されたことを願っています。

---

<div class="post-metadata">

### Author: ![Mevo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mevo/32/187732_2.png) [@Mevo](https://meta.discourse.org/u/Mevo)
#### Post date: [2024 年 11 月 17 日午後 3:35 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/34 "2024-11-17T15:35:12Z")

</div>

> [@JacobK1](#):
>
> 自分のコンピュータで実行されるソフトウェアを制御できるべきだと思います。

私の理解が正しければ、これらすべては主にJavaScriptに関連しており、各Discourseインスタンスによって提供されるブラウザ内でJavaScriptで実行されるものに関するものです。それは主に「信頼」と、実行されるコードを知る能力（コードを確認できること）に関するものでもあります。これで合っていますか？

これは私の専門知識をはるかに超えていますが、これに対して「制御」することは可能なのでしょうか？皆のために物事を変更するコミットを提出しない限り、ここで自分で何かを「修正」できるとは思えません。なぜなら、あなたが「ソフトウェア」と呼んでいるものは、毎回サーバーからあなたのブラウザに提供されるからです。

たとえ各フォーラムが独自のオープンソースコードを公開し、考えられるすべての変更を加えたとしても、それらが常に実際に実行されていることを確実に知ることができますか？一度ダウンロードして、自分で確認してコンパイルするというわけにはいきません。

あなたが本当に望むのは次のいずれかでしょう：

1. JavaScriptを使用しない（Discourseはそれに大きく依存しているため、それは無理です）または
2. 独立したオープンソースクライアントを実際にコンピュータにインストールすること。後者は、もしDiscourseでそれが可能であれば、JavaScriptを使用しない必要がありますが、それはわかりません。そうすれば、クライアントを自分で変更し、求めている制御を得ることができるでしょう。

これは公平な理解でしょうか？  
（追伸：これも私の専門知識を超えていますが、私の記憶が正しければ、Discourseのコードの100％がオープンソースというわけではありません。今、あなたはサーバーサイドのすべてではなく、自分の側で実行されることだけを本当に気にしています。）

---

<div class="post-metadata">

### Author: ![HAWK](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hawk/32/86627_2.png) [@HAWK](https://meta.discourse.org/u/HAWK)
#### Post date: [2024 年 11 月 19 日午前 1:23 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/35 "2024-11-19T01:23:17Z")

</div>

> [@Mevo](#):
>
> しかし、私の記憶が正しければ、Discourseのコードの100%はオープンソースではありません。

ホスティング/インフラの一部を除き、すべてオープンソースです。

---

<div class="post-metadata">

### Author: ![JacobK1](https://avatars.discourse-cdn.com/v4/letter/j/7feea3/32.png) [@JacobK1](https://meta.discourse.org/u/JacobK1)
#### Post date: [2024 年 11 月 19 日午前 5:17 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/36 "2024-11-19T05:17:43Z")

</div>

@Jagster

> [@Jagster](#):
>
> > [@JacobK1](#):
> >
> > なんだか、フリーではないソフトウェアを実行させられたような気がします
> 
> その感覚は、きっとよく抱くのでしょう。スマイリーは使いません。これは、インターネットとその中のアプリがどのように機能するかについての単なる事実の表明だからです。

少し大げさだったかもしれません 🙂

私のソフトウェアの大部分は、ウェブブラウザではなく `apt install` で入手しており、ソフトウェア配布元（Trisquel）がフリーなソフトウェアのみを配布すると信頼しているため、通常はこうした懸念は生じません。

> [@Jagster](#):
>
> あなたはカスタマイズが悪いと言ったはずです

明確にしておきますが、私はカスタマイズが必ずしも悪いと言っているわけではありません。単に、それがフリーではない場合、悪い結果を招く可能性があると言っています。したがって、フリーではないソフトウェアを実行しないようにするための一つの方法は、カスタマイズを無効にすることです。

> [@Jagster](#):
>
> ベースがオープンソースなら、すべてのアドオンもフリーでなければなりません

私はすべてのソフトウェアがフリー/リブレであるべきだと考えています。

@Jagster @RGJ

> [@Jagster](#):
>
> しかし、いくつかの追加機能がフリーでない場合でも、Discourse、WordPress、Moodle などがフリーでない理由がわかりません。その考えの背後にある論理が理解できません。

> [@RGJ](#):
>
> > [@JacobK1](#):
> >
> > CLA は、プロプライエタリなバージョンを許可する可能性があります
> 
> しかし、それらはオープンソースバージョンの「上に」存在するに過ぎません。したがって、CLA の存在そのものが Discourse を非フリーにするわけではありません。

明確にしておきますが、Discourse が非フリーだと主張しているわけではありません。問題となっているのは、この特定の Discourse 配布版（Discourse Meta）が、フリーではないソフトウェアを含んでいるように見える点です。

@Jagster @merefield

> [@merefield](#):
>
> ホスティング業者がそれをどのように適応させるかは予測できません。

前の投稿で触れるべきだったのですが、この配布版がフリーであると考えたもう一つの理由は、[Discourse の「About」ページ](https://www.discourse.org/about) に「Discourse のバージョンはただ一つです – [_素晴らしいオープンソース版_](https://github.com/discourse/discourse)」と記載されていることです。これは、プラグインが Discourse の一部ではないため、技術的には真実です。しかし、私にとっては誤解を招くように感じられました。

Discourse がサードパーティの配布版を制御できないことはあっても、About ページでそのようなことを述べている以上、Discourse によってホストされた Discourse インスタンスがフリーソフトウェアであることは期待されていました。また、派生体がフリーソフトウェアであることを実質的に要求するライセンスやフレームワークを期待していたかもしれません。Discourse は GPL なので、ある意味では存在しますが、プラグインはカバーされていないようです。

@merefield @NateDhaliwal

> [@merefield](#):
>
> Discourse インスタンスを無料で運用するための資金が無限にある人ばかりではありません。多くのサイトは、請求書を支払うために収益を上げる必要があります。

> [@NateDhaliwal](#):
>
> したがって、プラグインのほとんどは、非常に、非常に、非常に稀な場合（おそらくほぼない！）を除き、そのようなカスタマイズが有料になることはありません [[1]](#footnote-1647606-1)。

ソフトウェアやサービスに対して料金を請求することは問題ないと思います。「フリーソフトウェア」における「フリー」は通常、「リブレ」を意味します。つまり、入手後にそれに対して何をしてもよい（コピー、改変など）という自由です。必ずしも「無料（ゼロコスト）」という意味ではありません。

@NateDhaliwal

> [@NateDhaliwal](#):
>
> クローズドソースのカスタマイズを可能な限りコピーして自分で使用しようとしても、誰もあなたを止めはしません。

厳密に言えば、誰も私を止めないかもしれませんが、それは違法行為であり、それは良くないことです。私的使用であればうまくいくかもしれませんが、一般的に公開されているソフトウェアリポジトリやアプリストアは、違法なコードを含めたくないと考えています。また、私がそのソフトウェアを使用したいと考えている人々の一部は、違法にコピーされたコードを実行することに不安を感じるかもしれません。私のアプローチが正しいかどうかはわかりません。著作権を完全に無視すべきかもしれませんが、違法かつ非フリーなソフトウェアを回避することが可能である場合、それは最良の選択肢ではないでしょう。

> [@NateDhaliwal](#):
>
> 失礼か、ぶっきらぼうに聞こえるかもしれませんし、同じことを繰り返して堂々巡りになっているかもしれません。申し訳ありません。

気にしないでください！🙂 あなたが失礼だとは思いませんし、まだ堂々巡りしているとも感じません。

@RGJ

> [@RGJ](#):
>
> フリーソフトウェアを実行しているからといって、それを制御しているわけではありません。

これはどういう意味でしょうか？ソフトウェアがフリーであれば、それを改変できるはずです。したがって、そのソフトウェアが何を行うかを制御できます。

> [@RGJ](#):
>
> > [@JacobK1](#):
> >
> > 信頼できない第三者から任意のコードを自動的にダウンロードして実行するプログラムを使用しなければ、インターネット上でフリーではないソフトウェアを実行しないようにすることは比較的容易です
> 
> どうやらあなたは「信頼できる」と「フリー」を混同しているようです。サーバー管理者が Discourse を構築する際、ビルドプロセスは NPM からあらゆる種類のパッケージをダウンロードします。それらは常に信頼できるでしょうか？（歴史が示す通り、そうではありません – [例](https://medium.com/intrinsic-blog/compromised-npm-package-event-stream-d47d08605502) および [別の例](https://therecord.media/malware-found-in-npm-package-with-millions-of-weekly-downloads)）。

フリーと信頼は同じだとは思いません。おそらく「信頼できない」ではなく「任意の」と言うべきだったかもしれません。しかし、私の主張は、ほとんどのブラウザがウェブページから与えられたコードを何でも実行してしまうということです。私は以前訪れたことのないウェブサイトによくアクセスするため、訪問する多くのウェブサイトは「信頼できない」状態にあります。これらのウェブサイトについては、フリーではないソフトウェアを送信しない理由がありません。

NPM については、任意のウェブサイトよりも信頼できると考えていますが、apt や guix のリポジトリほどではありません。ただし、信頼は一次元的ではありません。NPM 上の新しいパッケージを、それが NPM にあるという理由だけで信頼するわけではありませんが、NPM から JQuery をダウンロードしたとき、それが本当に JQuery であるとは信頼できます。NPM は、JQuery を攻撃者が置き換えることを可能にするミスを犯す可能性はありますが、サイト経由で配信される JavaScript に対しては現実的ではない対策（例：公開前の自動/手動レビュー、公開後のクラウドソーシングレビュー、ミニファイ/難読化されたスクリプトがソースコードと一致していることの自動チェック、ランタイムでの任意のコードのダウンロードと実行を禁止するルールなど）でマルウェアを回避する措置を講じることができます。重要なのは、NPM でマルウェアが発見された場合、ソフトウェア開発者ではなく第三者（NPM）に報告して削除を求めることができる点です。これはサイト経由で配信される JavaScript の場合は当てはまりません。それを削除できるのは、サイト運営者だけです。

> [@RGJ](#):
>
> > [@JacobK1](#):
> >
> > つまり、インスタンスは Discourse 自体を修正していない（ただし、プラグインを追加している可能性はある）と推測します。
> 
> あなたは「推測」していますね 🤔 サーバー管理者は、コミットハッシュを変更せずに修正を加えることができます。また、プラグインは JavaScript コードを注入することもできます。

サーバー管理者が修正を加えても、リストされたコミットハッシュを変更しなかった場合、そのリストされたコミットハッシュは誤りになるのでしょうか？ソフトウェアの更新は自動的にコミットハッシュを変更するものだと思っており、リストされたコミットハッシュも自動的に更新されると（誤って）想定していました。

プラグインによって注入された JavaScript は、`safe_mode=no_themes,no_unofficial_plugins` で無効化されますか？

> [@RGJ](#):
>
> > [@JacobK1](#):
> >
> > これとバージョン情報を組み合わせれば、フリーではないソフトウェアを実行せずに任意の Discourse 配布版を使用できます
> 
> 残念ですが、それは誤りです。

では、Discourse を使用しながらフリーではないソフトウェアを回避する唯一の方法は、Discourse クライアントをブラウザ拡張機能や Haketilo パッケージ、あるいはそれに似たものにパッケージ化することでしょうか？

> [@RGJ](#):
>
> これはフリーか非フリーか、オープンソースかクローズドソースかではなく、信頼の問題です。

私の元の質問はソフトウェアの自由に関するものであり、信頼に関するものではありません。その意味がわかりません。

> [@RGJ](#):
>
> Discourse インスタンスを訪問する場合、以下の者を信頼する必要があります。
> 
> - サーバー管理者
> - Discourse GitHub 組織へのコミット権限を持つ全員
> - プラグインリポジトリへのコミット権限を持つ全員
> - GitHub の全員
> - 完全な NPM ソフトウェアチェーン
> - 使用されている NPM リポジトリへのコミット権限を持つ全員
> - ブラウザソフトウェアを制御する全員
> - SSL 証明書と信頼チェーンを提供した企業
> 
> これらは少なくとも数千人に上るでしょう？

あなたがリストした全員を信頼しなければならないという点には同意しません。

- サーバー管理者は、彼らが配信するソフトウェアを実行しない場合（例えば、Discourse クライアントを GitHub から入手し、そのサーバーで使用できるようにパッケージ化する場合など）、信頼する必要はありません。
- 多くの場合、ソフトウェアを共同開発する人々は互いのコミットのいくつかを読むため、すべての著者を個別に信頼する必要はありません。

> [@RGJ](#):
>
> すべてのプラグインがオープンソースなわけではありません（例：discourse-customer-flair-plugin は AFAIK オープンソースではありません）。したがって、ここにあります。

つまり、Discourse Meta クライアントはプロプライエタリソフトウェアだということでしょうか？ただし、safe モードを使用してプラグインの JS を無効にすることは可能です。

> [@RGJ](#):
>
> 私の主張は、すべてがオープンソースやリブレでなくても、十分な信頼を得られる可能性があるということです。

もしかしたらそうかもしれませんが、私がフリーではないソフトウェアを回避したいと考えている場合、それはあまり役立ちません。

@NateDhaliwal

Discourse の Git リポジトリのライセンスは読みましたが、（CLA のため）そのリポジトリ外の Discourse の派生体には必ずしも適用されません。すべての Discourse 配布版において、どの配布ソフトウェアがリブレであるかを明記した通知を見てみたいと思います。それは（私の意見では）GPL の精神にも合致します。「権利を知るために、これら条項を示さなければならない」のです。

@Mevo

> [@Mevo](#):
>
> これは私の能力を超えた話ですが、これに「制御」することは可能ですか？全員に変更を加えるコミットを提出しない限り、あなたが「ソフトウェア」と呼ぶものをあなたのコンピュータで実行することは、サーバーが毎回ブラウザに提供するため、自分で「修正」することはできないと思います。

はい、ブラウザ拡張機能やプロキシ（Haketilo や GreaseMonkey など）から JavaScript を実行することは可能です。ただし、ソフトウェアによっては非常に非実用的な場合があります。例えば、データが JavaScript ソフトウェアに組み込まれている場合、頻繁に更新されるソフトウェアではそうです。Haketilo は「module」タイプのスクリプトなど、ある種のスクリプトのサポートも行っていません。

> [@Mevo](#):
>
> その理解で合っていますか？

はい、全体的にあなたの理解は正しいと思います。ただし、JavaScript をブラウザ拡張機能や Haketilo、GreaseMonkey 用にパッケージ化すると、JavaScript を使用しているにもかかわらず、実質的に独立したインストール済みクライアントとして機能することになります。

@HAWK

> [@HAWK](#):
>
> > [@Mevo](#):
> >
> > しかし、記憶が正しければ、Discourse コードの 100% がオープンソースではありません。
> 
> ホスティング/インフラコードの一部を除き、すべてがオープンソースです。

「すべて」とは、discourse-customer-flair-plugin のようなプラグインを含まない、「Discourse の一部であるすべて」を意味していると推測します。

---

<div class="post-metadata">

### Author: ![HAWK](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hawk/32/86627_2.png) [@HAWK](https://meta.discourse.org/u/HAWK)
#### Post date: [2024 年 11 月 19 日午前 6:39 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/37 "2024-11-19T06:39:34Z")

</div>

> [@JacobK1](#):
>
> 「すべて」とは、プラグイン（例：discourse-customer-flair-plugin）を含まない、Discourse の一部である「すべて」という意味でおっしゃっていると推測します。

上記で注記したものを除き、当社がホストしているコア製品（Meta を含む）の一部であるすべては、無料かつオープンソースです。

一部のプラグインは、実行するためにプロプライエタリなプラットフォームに依存していますが、それは Discourse がオープンソースであるかどうかとは関係ありません。

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [2024 年 11 月 19 日午前 7:49 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/38 "2024-11-19T07:49:22Z")

</div>

> [@JacobK1](#):
>
> 明確にしておきますが、Discourseがフリーではないと言っているわけではありません。非フリーソフトウェアが含まれているように見えるのは、この特定のDiscourse（Discourse Meta）のディストリビューションだけです。

CDCKまたは私たち（Discourseをホストする会社の共同創業者です）によってホストされているすべてのDiscourseインスタンスは、ホスティング環境に固有の機能を提供するために、1つまたは複数のクローズドソースプラグインを実行しています。

> [@JacobK1](#):
>
> Discourseはサードパーティのディストリビューションを制御できないかもしれませんが、DiscourseがAboutページで言っていることを考えると、DiscourseによってホストされているDiscourseインスタンスはフリーソフトウェアであると期待していました。

昔ながらのディストリビューション（ここにgithubリポジトリがあり、自由に何でもできます）と、より現代的なディストリビューション（ここにウェブサイトがあり、ブラウザにJavaScriptをプッシュします）との間には、多くの混乱があると思います。さらに、Discourse `https://github.com/discourse/discourse` と、サイト管理者が追加したDiscourseとそのすべてのファーストパーティおよびサードパーティプラグインおよびテーマコンポーネントとの間にも混乱があります。

> [@JacobK1](#):
>
> ソフトウェアがフリーであれば、それを変更できるということは、それが何をするかを制御できるということになります。

> [@JacobK1](#):
>
> サーバー管理者が変更を加えて、リストされているコミットハッシュを変更しなかった場合、リストされているコミットハッシュは間違っているということになりますか？ソフトウェアを更新するとコミットハッシュが自動的に変更されると思っており、（間違って？）リストされているコミットハッシュも自動的に更新されると仮定していました。

それは_コミット_ハッシュなので、リポジトリからプルした後、コミットする前に変更が加えられた場合、すでにそのような状況になっています。これは悪意のある行為である必要はありません。セキュリティパッチが適用された場合にも発生します（通常、公開ブランチにコミットする前に適用されます）。一般的にセキュリティパッチはクライアント側ではありませんが、更新されたクライアント側コードが導入される可能性があります。

> [@JacobK1](#):
>
> プラグインによって注入されたJavaScriptは、`safe_mode=no_themes,no_unofficial_plugins`で無効になりますか？

はい、少なくとも理論上は。それが（意図的または偶発的に）回避するのがどれほど難しいかはわかりません。

> [@JacobK1](#):
>
> 多くのケースでは、ソフトウェアで協力している人々はお互いのコミットの一部を読むことがあるので、すべての作者を個別に信頼する必要はありません。

🤔 [Was the iOS SSL Flaw Deliberate? - Schneier on Security](https://www.schneier.com/blog/archives/2014/02/was_the_ios_ssl.html)

> [@JacobK1](#):
>
> では、Discourseを使用しながら非フリーソフトウェアを回避する唯一の方法は、Discourseクライアントをブラウザ拡張機能やHaketiloパッケージなどにパッケージ化することでしょうか？

それは一つの方法でしょう。それが唯一の方法かどうかはわかりません。これを行う場合、問題を回避するためにほぼ毎日更新する必要があります。

このトピック全体が興味深い法的議論であるにもかかわらず、すべてが現実から少し切り離されているように思えます。

---

<div class="post-metadata">

### Author: ![JacobK1](https://avatars.discourse-cdn.com/v4/letter/j/7feea3/32.png) [@JacobK1](https://meta.discourse.org/u/JacobK1)
#### Post date: [2024 年 11 月 19 日午後 3:14 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/39 "2024-11-19T15:14:27Z")

</div>

@HAWK

> [@HAWK](#):
>
> Everything that is part of the core product that we host (including Meta), with the exception I noted above, is free and open source.

プラグイン、例えば discourse-customer-flair-plugin のようなものには、以前見つけられなかったライセンス付きの別リポジトリがありますか？ブラウザに配信される JavaScript にはソースマップへのリンクがありますが、私の知る限りライセンスはありません。

「ホスティング/インフラコード」という私の理解には、クライアントサイドの JavaScript は含まれないと思いますが、それは正しいですか？

@RGJ

> [@RGJ](#):
>
> I think there is a lot of confusion between a distribution in the good old sense (here’s a github repo and feel free to do whatever you want) and a distribution in the more modern sense (here’s a website and it pushes Javascript to your browser). Additionally, there is confusion between Discourse `https://github.com/discourse/discourse` and Discourse-and-all-of-its-first-and-third-party plugins-and-theme-components-added-by-the-site-administrators.

同意します。「Discourse」という言葉が実際に何を指すのか、混乱していると思います。

> [@RGJ](#):
>
> > [@JacobK1](#):
> >
> > 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.
> 
> It’s a _commit_ hash so if modifications are made after pulling it from the repo and before committing it then you already have such a situation. That doesn’t need to be a malicious act, it will also happen if security patches are applied (which is typically done before committing them in a public branch). Now in general security patches are not client side but they might introduce some updated client-side code.

ああ、なるほど。では、それを知るための良い方法はないということですね。

> [@RGJ](#):
>
> > [@JacobK1](#):
> >
> > In many cases, people collaborating on software might read some of each others’ commits, so I don’t have to trust all authors individually.
> 
> 🤔 [Was the iOS SSL Flaw Deliberate? - Schneier on Security](https://www.schneier.com/blog/archives/2014/02/was_the_ios_ssl.html)

良い点ですね。このような欠陥を隠そうとする人もいるかもしれません。しかし、アップストリームでコードを変更したすべての個人を信頼するよりも、サードパーティのコードを監査することでその問題を軽減する方が簡単のように思えますが、おそらくどちらのアプローチも完全に実行するのは現実的ではないでしょう。

> [@RGJ](#):
>
> > [@JacobK1](#):
> >
> > 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?
> 
> It would be a way, I’m not sure if it’s the only way. If you do this, you would need to update it on an almost-daily basis to avoid breaking stuff.

はい、ただし、ほとんどの更新は自動的に処理できる可能性があります。

> [@RGJ](#):
>
> Even though this entire topic is an interesting legal discussion, it all seems a bit detached from reality.

このケースでは、ほとんど真実だと思います。

---

<div class="post-metadata">

### Author: ![Mevo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mevo/32/187732_2.png) [@Mevo](https://meta.discourse.org/u/Mevo)
#### Post date: [2024 年 11 月 19 日午後 5:43 UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/40 "2024-11-19T17:43:58Z")

</div>

念のため、@JacobK1 さん：Discourse はよくできているので、その人を引用するときにタグ付けする必要はありません。引用自体で通知が生成されます 👍 （サブセクションを作成するためでもありましたが 🙏 ）

[Previous page](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374.md?page=1)

[Next page](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374.md?page=3)
