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

また、セーフモードを使用して、他の 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 しても見つけられなかったかもしれませんが、見落とした可能性があります。

ここから、それらのほとんどはサードパーティではなく、ファーストパーティであるため、明白です :smirking_face:

カテゴリ Plugin および Theme component をチェックしてみてください。しかし、DevDocumentation なども興味深いかもしれません。

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

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

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

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

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

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

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

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

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

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

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

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

定義に関する補足

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

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

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

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

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

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

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

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

script-diff.js
// 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(クールな提案機能!)が提案したように、編集による返信を試しています)

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

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

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

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

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

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

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

まさにその通りです :+1:

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

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

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

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

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

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

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

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

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


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

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

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


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

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

これは金銭的な意味での無料ではなく、「制限のないライセンスが存在する」という意味での無料です。What is Free Software? - GNU Project - Free Software Foundation

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

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

つまり、「信頼できる」と「フリー」を混同しているようですね。サーバー管理者がDiscourseをビルドする際、ビルドプロセスではNPMからさまざまなパッケージがダウンロードされます。それらは常に信頼できるのでしょうか?(歴史が教えてくれたように、そうではありません - 別の例)。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@Jagster

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

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

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

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

@Jagster @RGJ

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

@Jagster @merefield

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

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

@merefield @NateDhaliwal

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

@NateDhaliwal

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

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

@RGJ

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

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

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

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

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

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

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

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

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

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

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

@NateDhaliwal

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

@Mevo

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

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

@HAWK

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

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

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

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

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

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

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

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

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

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

@HAWK

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

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

@RGJ

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

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

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

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

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

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