web-dev-qa-db-ja.com

他の言語にコンパイルされるDartのような言語に関して、GPLはどのように機能しますか?

GoogleのDart言語は、Dartiumとして知られるChromiumの特別なビルド以外のWebブラウザではサポートされていません。プロダクションコードにDartを使用するには、Dart-> JavaScriptコンパイラ/トランスレータを介して実行し、Webアプリケーションで出力されたJavaScriptを使用する必要があります。

JavaScriptはインタプリタ言語であるため、「バイナリ」(別名、.jsファイル)を受け取るすべての人がソースコードも受け取りました。

GNU General Public License v3.0は次のように述べています:

「作品の「ソースコード」とは、作品に変更を加えるための作品の好ましい形式を意味します。」

これは、JavaScriptコードに加えて元のDartコードもエンドユーザーに提供する必要があることを意味します。これは、ソースコードのコピーがすでに人間が読み取り/書き込み/変更可能な形式で提供されている場合でも、Dartで作成されたWebアプリケーションは、Webサイトのすべての訪問者に元のDartコードも提供する必要があることを意味しますか?

11
Peter-W

はい、コードがGPLの下にあり、出力されたJavaScriptを配信する場合、元のDartコードも提供する必要があります。これは通常、サイトからソースコードをダウンロードするためのリンクを使用して行われますが、コメントなどに埋め込むこともできます。

この場合、GPLに準拠する最も簡単な方法は、ソースの配布にオプションdを使用することだと思います

d)指定された場所(無償または有料)からのアクセスを提供することによってオブジェクトコードを伝達し、同じ場所を介して、対応するソースへの同等のアクセスを同じ場所からさらに無料で提供します。オブジェクトコードと共に対応するソースをコピーすることを受信者に要求する必要はありません。オブジェクトコードをコピーする場所がネットワークサーバーである場合、対応するソースは、同等のコピー機能をサポートする別のサーバー(ユーザーまたはサードパーティが運営)にある可能性があります。対応するソースを見つけます。対応するソースをホストしているサーバーに関係なく、ユーザーは、これらの要件を満たすために必要な限り利用できることを保証する義務があります。

基本的には、ページにJSファイルを含めるときにこれを行います

<script src="file.js" /><!-- source at http://example.com/path/to/modified/source/file.Dart -->
9
Dirk Holsopple

まず、AGPLではなくGPLについて話します。

あなたが配布しないアプリケーションをGPLした場合、それをサーバーで実行するとあなたはしません 'ソースコードを提供する必要があります。そのためのAGPLがあります。 GPLはすべて配布に関するものです。

Drupal FAQから:

自分のWebサイトのコードを、それを訪問する人全員に渡す必要がありますか?

いいえ。GPLは、Webサイトの表示を「配布」としてカウントすることを考慮していないため、サーバーで実行されているコードを共有する必要はありません。http://drupal.org/licensing/faq/#q6

DrupalはGPLでライセンスされており、jsファイルが含まれていることに注意してください)。

GNUから:

GNU Affero GPLの目的は、サーバーで頻繁に使用される無料プログラムの開発者に影響を与える問題を防ぐことです。

通常のGNU GPLの下で無料プログラムを開発してリリースするとします。開発者Dがプログラムを変更してリリースした場合、GPLは彼にバージョンの配布を要求しますGPLの下でも同じです。したがって、彼のバージョンのコピーを入手した場合、彼の変更の一部またはすべてを自分のバージョンに自由に組み込むことができます。

しかし、プログラムが主にサーバーで役立つと仮定します。 Dがプログラムを変更するとき、Dはおそらく自分のサーバーで実行し、コピーをリリースしない可能性があります。そうすれば、彼のバージョンのソースコードのコピーを取得できなくなり、バージョンに彼の変更を含めることができなくなります。あなたはその結果を気に入らないかもしれません。

GNU Affero GPLを使用すると、その結果を回避できます。Dが自分のバージョンを誰もが使用できるサーバーで実行する場合、あなたもそれを使用できます。サーバーのユーザーにダウンロードを許可するライセンス要件に従っていると想定します彼のバージョンのソースコード、そうすることができ、それから彼の変更をあなたのバージョンに組み込むことができます(彼がそれに従わなかった場合、あなたはあなたの弁護士に彼に文句を言うことになります。)出典: http:/ /www.gnu.org/licenses/why-affero-gpl.html

2
JCasso

一般的に、それは本当にライセンスに依存します。あなたの場合、それはBSDなのでDartは悪い例であり、GNU 3.0はあなたが話しているケースをカバーしています。弁護士ではないので、私はその引用を「生成されたコード特にカバーされていません」

Dartホームページ これを参照: BSD License

だからあなたはGPLについての質問は愚かです

また: GNU 3.0ライセンス

人々が私のプログラムの使用から得られる出力をGPLできるいくつかの方法はありますか?たとえば、私のプログラムがハードウェア設計の開発に使用されている場合、これらの設計がフリーでなければならないことを要求できますか? (#GPLOutput)

一般に、これは法的に不可能です。著作権法は、ユーザーがプログラムを使用してデータから作成した出力の使用について、何の発言もしません。ユーザーがプログラムを使用して自分のデータを入力または変換する場合、出力の著作権はユーザーではなくユーザーに帰属します。より一般的には、プログラムが入力を他の形式に変換するとき、>出力の著作権ステータスは、生成元の入力の著作権ステータスを継承します。

したがって、出力の使用において発言権を持つ唯一の方法は、出力のかなりの部分が(多かれ少なかれ)プログラムのテキストからコピーされるかどうかです。たとえば、この特定のケースで例外を作らなかった場合、Bisonの出力の一部(上記を参照)はGNU GPLでカバーされます。

技術的な理由がない場合でも、人為的に特定のテキストをプログラムの出力にコピーさせることができます。しかし、そのコピーされたテキストが実際的な目的を果たさない場合、ユーザーはそのテキストを出力から単に削除し、残りのみを使用することができます。その後、彼はコピーされたテキストの再配布に関する条件に従う必要はありませんでした。

1
Paul

基本的な質問は次のとおりです。

WebページにJavaScriptを含める(スクリプトタグを介して参照するなど)ことは、GPLで保護された作業を「伝える」と見なされますか?

含まれている場合は、コードを変更するための適切な形式でソースを利用できるようにする必要があります(そうでない場合)。この場合、推奨される形式は、JavaScriptの生成に使用された元のDartソースコードです。

FSFサイトでこの質問に対する明確な答えを見つけることができませんが、ストールマンのエッセイ "The Javascript Trap" は、彼がそれを伝えていると見なしていることを示しているようで、元のダートを作成する必要があります利用可能なソースコード。ライセンスのテキストを含まないが、ライセンスによってカバーされている縮小バージョンの許可についての彼のメモを参照してください。

テンプレートがGPLされていなくてもGPLされたJavaScriptを使用できるようにする例外については、JavaScriptとテンプレートに関する [〜#〜] faq [〜#〜] も参照してください。

あなたがしたいことがライセンスに準拠しているかどうかを知るための絶対最良の方法は、コードの著作権所有者に依頼することです。これは、ライセンスを施行する権利しか持っていないためです。彼らはライセンスを別の方法で解釈しており、解釈を明確にするために例外を追加することをいとわないかもしれません。

0
Craig