GPL FAQから(ただし、アドバイスはすべてのライセンスに適用されます):
プログラムのすべてのコピーにGPLのコピーを含める必要があるのはなぜですか。
作品にライセンスのコピーを含めることは、プログラムのコピーを取得するすべての人が自分の権利が何であるかを知ることができるようにするために不可欠です。
ライセンス自体ではなく、ライセンスを参照するURLを含めたくなるかもしれません。しかし、URLが今から5年後または10年後も有効であることを確信できません。今から20年後、今日私たちが知っているURLは存在しなくなる可能性があります。
プログラムのコピーを持っている人が、ネットワークで発生するすべての変更にもかかわらず、ライセンスを引き続き表示できるようにする唯一の方法は、プログラムにライセンスのコピーを含めることです。
(強調鉱山)
ライセンスをホストしているサイトがダウンしたり、URLパスを変更したりすると、ソフトウェアのコピーを持っている人は、安全に行使できる権限を確認できなくなります。その正確なURLがいつまでもオンラインであることをなんとかして保証できるとします。ユーザーがソフトウェアの使用が合法であることをユーザーが確認できるかどうかは、その特定のURLに接続できるかどうかにかかっています。この要件は、特定の都市/国/惑星では面倒ではないかもしれませんが、他の場所では面倒な場合があります。特に回避策(完全なライセンステキストを含む)が取るに足らない場合は、この要件を課すべきではありません。
「それで、URLがダウンしたりアクセスできない場合は、 'GNU GPL v3'のような明確な記述子で十分です。GPLのフルテキストコピーで十分です。ユーザーは調べることができます。ライセンス自体。」いくつかの問題がすぐに思い浮かびます:
これは、あまり明確でないライセンス識別子に一般化されません(「BSDライセンス」というフレーズが思い浮かびます)。
これは、あまり一般的でない、またはカスタマイズされたライセンスにはうまく一般化しません(「リンク例外を伴うGPL」が思い浮かびます:どのリンク例外ですか?)。ユーザーが名前でそれを確実に見つけることを期待することが合理的である前に、ライセンスはどれくらい一般的である必要がありますか?
これには、ユーザーがソフトウェアを入手したときに接続があったとしても、ユーザーがインターネット接続を持っている必要があります。(そして、ソフトウェアを入手したときにインターネットにアクセスできなかった可能性があります。「CD時代」はまだ世界の多くの地域で終わっていません。追加のケースとして、広範囲のインターネットアクセスを持っているが、その大部分を検閲している国民を考えてみてください。 。)自由に再頒布可能なソフトウェアの結果として、受取人があなたから直接、または当初予期していた配布チャネルを通じて、ソフトウェアのコピーを受け取ることができなくなります。
ライセンスリンクに対する最後の議論の1つは、以下のMichaelTのコメントに示されています。これにより、ライセンスを動的に遡及的に変更できます。これは意図的に行うこともできますが、ソフトウェアのバージョン間でライセンスを変更したが、両方のバージョンに同じライセンスリンクを使用したために、古いライセンスが存在しなくなった場合にも、誤って行われる可能性があります。そのような切り替えは、現在のバージョンとは異なるライセンスの下で古いコピーを入手したことを証明する必要がある人々にとって困難を加えます。
では、なぜプロジェクトのルートにライセンスを保持する必要があるのですか?
私は弁護士ではありませんが、プロジェクトのルートにライセンスを保持する必要があるという説得力のある議論は見たことがありません。ライセンスが作品の各コピーに付随しなければならないことを指定しているGPLでさえ、どのように作品に付随しなければならないかについては触れていません。(これは、GPLが「ルートディレクトリ」の概念が意味を持たない非ソフトウェアコンテキストに適用される可能性があるためです。)
ルートディレクトリにライセンスを保持することは、ユーザーに表示される可能性を最大化し、ユーザーの不満と不明瞭なディレクトリでライセンスを非表示にしようとすることに対する苦情の可能性の両方を最小化するため、おそらく良いアイデアです。多くのライセンスがある場合は、それらすべてを独自のフォルダーに配置し、各コンポーネントのライセンスを見つけるためのファイルパスを含む明白なプロジェクトREADMEを含める方が理にかなっている可能性があります。
ライセンスをディレクトリルートに配置することは、全体として機能する場合とは異なる方法でライセンスされるモジュールのライセンスを明確にすることができるため、有用な方法です。プロジェクトFooProjがスタンドアロンモジュールBarModを使用するとします。FooProjはGPLライセンスである可能性がありますが、スタンドアロンモジュールはMITライセンスである可能性があります。FooProjを初めて開いたとき、ルートにGPLのコピーが表示され、全体としてGPLライセンスであることがわかります。BarModのフォルダーに移動すると、そこに新しいライセンスファイルが表示され、このフォルダーの内容がMITライセンスであることがわかりました。もちろん、これは役に立つ補助に過ぎません。モジュールのライセンスは常にREADME、NOTICE、または同様のファイルで明示する必要があります。
つまり、ファイルルートを使用することは、利便性と明確さの問題です。私はそれを必要とする法的に拘束力のあるオープンソースライセンステキストを見たことはありません。また、それが法的に必要とされる理由についても知りません。ライセンスは、受信者が簡単に見つけられるものでなければなりません。プロジェクトのルートにライセンスを含めることで、この基準を満たすのに十分ですが、必須ではありません。