web-dev-qa-db-ja.com

オープンソースプロジェクトからコードをフォーク/再利用する正しい方法は何ですか?

私がオープンソースプロジェクトで作業していて、別のオープンソースプロジェクトの簡単なユーティリティ関数(たとえば、ファイルの検索/置換関数)を再利用したいとします。関数をコピーして、ファイルの上部に小さな著作権表示を書き込むことは合法ですか?プロジェクト全体の著作権者としての名前をライセンスに含める必要がありますか?

同様に、私がオープンソースプロジェクトをフォークしているとしましょう。著作権が元の著作権者と私の間で共有されることをどこでどのように指定しますか?

答えはオープンソースライセンスによって多少異なると思いますが、なるべく一般的な答えが欲しいです。

PS:私は主に法的な側面について心配していますが、あなたの倫理的な観点を自由に含めてください。

22
Olivier Lalonde

私はこの答えを可能な限り「メタ」として適用できるようにしています。

他のプロジェクトのスニペット/ビットを使用

原作者の著作権でコードを明確にマークしてください。選択したライセンスが、使用しているコードのライセンスと完全に互換性があることを確認してください。コードを別のライセンスに移動するには、作成者の許可が必要になります(「GPL 2またはそれ以降のバージョン」など、特別に許可されている場合を除く)。

プログラムにはAUTHORSファイル(または同様のファイル)が必要です。このファイルには、他のプロジェクトから使用したすべての寄稿者および項目をリストします。

プロジェクトのフォーク

あなたが実質的に変更したモジュールごとに、元の作者のもとにあなたの著作権を追加します。ライセンスについても同じことが言えます。フォークしたときに有効だったライセンスの条件に拘束されます。プロジェクトが「GPL2のみ」と言っている場合は、それを尊重する必要があります。許可なくGPL3にアクセスすることはできません。

これは、手元にあるライセンスによって大きく異なります。 QPLは、たとえばパッチ形式でのみ変更を配布できると言っているので、変更されたバージョンのソフトウェアを配布できるようにする条件を理解していることを確認してください。

それを超えて、常に著作権を保持します。存在するものに独自の著作権を追加する場合は、主張して​​いるものを正確にマークしてください。

25
Tim Post