web-dev-qa-db-ja.com

MIT Licenseを使用して私のプログラムでApache 2.0ライセンスの下でコードを使用する

私のプログラムでは、Apache 2.0ライセンスに基づいてライセンスされているコード例のソースコードを使用しています。 MIT Licenseを使用して、GitHubでそのプログラムとソースコードを公開します。ライセンスで以下を読みました。

変更されたファイルには、ファイルを変更したことを示す目立つ通知を含める必要があります。

しかし、コードの関連部分をソースファイルにコピーしたばかりのファイルは変更しませんでした。

これが私の質問です:

Apache 2.0ライセンスのコピーをプロジェクトに追加する必要があることはわかっていますが、プログラム/ソースコードを正しく公開するには、ソースファイルに何かを追加する必要がありますか?

コマンドラインプログラムなので、-licenseスイッチを追加してライセンスを表示する必要がありますか、それとも「USAGE」出力を追加する必要がありますか?

MITライセンスをすべてのソースファイルに挿入する必要がありますか、それともプロジェクトにそのコピーを保持するのに十分ですか?

前もって感謝します!

7
MemphiZ

ソースの一部は1つのライセンス(Apache 2.0)でライセンスされ、一部は別のライセンス(MIT)でライセンスされるため、各ファイルには、そのファイルのコンテンツにどのライセンスが適用されるかを示す通知が含まれていることが重要です。

ソースファイルごとに1つのライセンスのみを取得することを強くお勧めします。そのため、サードパーティライブラリからコピーしたコードを別のソースファイル(または複数の別のソースファイル)に含める必要があります。これらのファイルには、Apacheライセンスに関する著作権表示があり、サードパーティのライブラリからコードをコピーしたことが記載されています。

MITライセンスの下で公開する独自のコードについては、MITライセンス全体を上部のコメントに含めることをお勧めします。あなたのファイル。
MITライセンスはそれほど長くないので、ファイルがプロジェクトの残りの部分から分離された場合でも、コードがどのライセンスの下にあるのかについての混乱を避けることができます。


異なるライセンスの下でコードを個別のファイルに分離することが不可能である場合は、次のように進めることができます(ファイルのごく一部がApacheライセンスの下にあると想定)。

  • ソースファイルをMITライセンスの下に置きます
  • 著作権とライセンスのステートメントのすぐ下に、ファイルの一部が別のライセンス下にあるというコメントを追加します。
  • Apacheライセンスの下にあるコードのすぐ上に、それに続くコードの著作権とライセンスの詳細を示すコメントブロックを追加します。
    他の人を完全に混乱させることを避けるために、これは関数の粒度で行われるべきです。