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


7

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

変更されたファイルには、ファイルを変更したことを明記する必要があります。

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

これが私の質問です:

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

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

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

前もって感謝します!


Apacheライセンスのプロジェクトから取得したパーツを独自のファイルに入れることはできますか?次に、そこにApacheライセンス条項を含めることができます。プログラムの「使用方法」の部分に通知を追加する必要はありません。
ブランディン2015

残念ながら、それは基本的にクライアント/サーバーのものであり、私がしなければならない場合にはコードを壊してしまうのでできません。
メンフィス2015

ファイルの上部に、どの部品がどのライセンスに該当するかについての説明を記載できると思います。しかし、それはおそらく混乱するでしょう。個人的には、他のライセンスコードを別のファイルに分離することをもっと厳しく検討します。これはおそらく、使用しているプログラミング言語でそれを実装する方法の技術的な問題に帰着します。たとえば、Pythonの場合、簡単に独自のパッケージに入れて、独自のコードから呼び出すことができます。
ブランディン

「しかし、コードの関連部分をソースファイルにコピーしたばかりのファイルは変更しませんでした。」次に、それを変更しました。不要になった部品を取り除いた。したがって、これらのコードは元のコードの変更されたバージョンであることを明確にする必要があります。また、ライブラリがMITライセンスとApacheライセンスの両方でカバーされていることも明確にする必要があります。
デビッドアルノ

作業にApacheライセンスを使用したくない理由はありますか?ApacheとMITは機能的にはほとんど同じです。(Apacheライセンスには、MITライセンスがないといういくつかの特許権の付与があります)。単一のライセンスを取得することで、あなたや潜在的なユーザーにとって物事がずっと簡単になります。
クレイグ

回答:


3

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

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

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


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

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

Apacheライセンスのコードを残りのコードから分離できない場合は、コードが完全に破損するか、読み取れなくなるためどうなりますか?
メンフィス2015

1
@MemphiZそれはどんなプログラミング言語ですか?多分あなたはSOに質問を投稿するべきです。「私はここにこのコードを持っています-それを独自のファイルに入れるにはどうすればよいですか」
Brandin

@MemphiZ:関数を別のファイルに分離できない場合にできることを追加しました。
Bart van Ingen Schenau、2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.