MITライセンスの下で配布されたコードを変更し、GPLライセンスの下で再配布できますか?[閉まっている]


57

2008年7月に最新リリースがあり、MITライセンスでライセンスされているChiliプラグインのコードを変更して、GPLでライセンスすることは可能ですか?

私が見る限り、同じライセンスの下でライセンスされる新しいコードに制限はありません。本当にそうですか、それとも最小限の変更がありますか?

私の場合、CMSで実行される通常のJavaScriptコードでjQueryプラグインを変更します。これは本質的に、とりわけ:

  • コードは「ChiliBook」名前空間を使用しません。
  • 関数はasとして呼び出されませんが$($element).chili()、asとして呼び出されますGlobalObject.ChiliHighlighter.process($jquery_element)。「GlobalObject」はCMSから使用されるJavaScriptオブジェクトです。
  • このコードにより、他のモジュールがGlobalObject.ChiliHighlighterオブジェクトを変更して、GlobalObject.ChiliHighlighter.process()定義時にオプションで呼び出される関数を追加できます。

代わりに、私が使用しているリポジトリは、コードがもはや維持されていないときにGPL 2以上のライセンスの下でライセンスされていないコードを含めることができるので、最後のバージョンが3年前にリリースされたため、プラグインはもはや維持されていないと見なされますか?


2
正式な回答が本当に必要な場合は、弁護士に相談する必要があります(関連する管轄区域では、たとえばイタリアと米国では回答が異なる場合があります)
-MarkJ

回答:


59

技術的に合法です。

MIT(Expat)ライセンスでは、いくつかの制限があります。これらはGPLライセンスのサブセットです。したがって、GPLに基づいてコードを再ライセンスし、MIT通知保持する場合、MITライセンスの条件を満たし、合法的にコードを再配布できます。

著作権の所有権を主張することはできません。元の著作権を承認する必要があります。

[編集]一部の人々は、F / OSSが著作権法およびライセンス法とどのように連携するかを理解していないようです。それがデフォルトだからという理由だけで、すべては著作権で始まります。著作権の原則の下で、著者はソースコードのコピーを作成する権利を取得します。MITライセンスの下では、その権利は私に与えられ、再帰的に他者に与える権利も与えられます。MITライセンスはサブライセンスの権利が明示的に含まれていることに注意してください。引用:"the rights to use, copy, modify, merge, publish,distribute, sublicense, and/or sell"

コードのサブライセンスを取得するとき、元々持っていなかった権利を付与することはできません。GPLの場合、一部の権利のみをサブライセンスすることは明示的に禁止されています。しかし、法律でもMITライセンスでも、すべての権利を全体としてサブライセンスする義務はありません。

したがって、MITライセンスはサブライセンスの権利に対する明示的な権利を私に付与し、法律もMITライセンスも一部の権利のみをサブライセンスすることを禁止していません。また、どちらも私が行うフォームを制限しません。したがって、私はそのコードにGPLサブライセンスを付与する否定できない権利を持っています。


6
@vartec:コードを受け取ったライセンスは変更していません。あなたはあなたと新しい受取人との間に新しいライセンスを作成しているので、あなたが望むどんな条件でも持つことができます。(新しい受信者は元のライセンスの下で追加の権利を取得できますが、それは新しいライセンスには影響しません。)通常、サブライセンスは元のライセンスの権利の一部を与えます。たとえば、サブライセンスにサブライセンスの権利が含まれることはめったにありません。サブライセンスが存在するためには、元のライセンスに含まれている必要があります。
デビッドシュワルツ

3
@vartec:基本的に、サブライセンスの権利を許可する著作権ライセンスは、実際にはサブライセンスの権利を許可しないと主張しています。しかし、どのような根拠でこの議論を行っているのかわかりません。関連する法的当局への引用はありますか?著作権所有者他人に彼の作品のライセンスを与える権利を与えることはできないと言っていますか?または、MITライセンスが何らかの理由でこれを実行できない、または実行しないと思いますか?
デビッドシュワルツ

1
@David:「サブライセンス」の意味を理解していないようです。
バルテック

1
@vartec:それが何を意味するのか理解していないと思うので、それを説明するソースへのリンクは素晴らしいでしょう。
デビッドシュワルツ

7
MITライセンスには、このビットが含まれています。「上記の著作権表示およびこの許可表示は、ソフトウェアのすべてのコピーまたは実質的な部分に含まれるものとします。」つまり、MITライセンスの下でフォークを使用できる必要があります。変更はGPLとしてリストされます。フォークはGPL + MITとしてリストできます。しかし、フォークはGPLのみとしてリストすることはできません-これはMITライセンスの明らかな違反です。
ジョナサンヴァナスコ

26

はい。しかし、その効果はあなたが思っている通りではないかもしれません。

MITライセンスには、GPLが付与するすべての権利が含まれています。そして、あなたのディストリビューションを受け取る人々はあなたが追加した要素に対するGPLライセンスのみを受け取りますが、著者はそのライセンスの下で著者が提供した作品に含まれるすべての要素に対するMITライセンス(あなたからではなく元の著者から)を受け取ります。

彼らはこれを知らないかもしれません、そして私が知る限り、法律はあなたに彼らに言うことを義務付けません。しかし、あなたが作成しなかった作品(またはGPLのみのリリースに他の人から提供されなかった作品)に含まれる保護可能な表現に関してGPLライセンスに「違反」した場合、彼らはあなたのライセンスまたは著作権に違反していません。(実際には、それはかなり明白なはずです-あなたはあなたが書いた表現の著作権のみを保持しています。)

したがって、著作権で保護された要素をMITライセンスからGPLライセンスに変換していません。GPLライセンスの下でのみ提供される新しいものを追加し、混合/結合作業で要素をリリースしました。


したがって、実際には、これを行います:MITプロジェクトをコピーし、MITをすべてGPLに置き換えます(したがって、MITであったプロジェクトの痕跡は残りません)。さらに、いくつかの重要な場所(元のMITプロジェクトにただし、ベースプロジェクトはMITで利用可能です。それは大丈夫/合法でしょうか(元の著作権所有者の声明を保持している場合)
hoijui

1
@hoijuiすべてのMITライセンスヘッダーと許可通知をそのままにして、新しいプロジェクトに含める必要があります。そして、あなたの意図がだまそうとしない限り、なぜあなたが「MIT」のすべての言及を置き換えるのかわかりません。それは何も変えません、あなたが取る部分はまだMIT認可されています。その下に独自のGPLライセンスヘッダーを追加するだけで、ソースコードに加えたすべての著作権で保護された変更(変数名の変更だけでなく)に有効になります。ところで、これがほとんどのプロジェクトがすべてのファイルに著作権ヘッダーを持っている理由です。
-jmiserez

@jmiserezわかりました。私のプロジェクトの1つのファイルを見てみましょう:MITヘッダーを残して、いくつかの変更を加えてGPLヘッダーを追加します(私の変更はGPLの下でのみ利用可能にするため)。今、私のファイルについて来るサードパーティは、MITとGPLの両方を尊重しなければならないでしょうか?2つのライセンスヘッダーを持つファイルを見たことはありません。ほとんどの人は、法的に正しい方法がわからないため、好きなライセンスを選択するだけだと思います。また、なぜGPLを尊重することで自動的にMITを尊重する場合、MITを含める必要があるのですか?
hoijui

@hoijui MITライセンスに基づいて所有する権利には、「上記の著作権表示およびこの許可表示は、ソフトウェアのすべてのコピーまたは実質的な部分に含まれる」という制限があります。しかし、正直なところ、通知の、または1つだけ、IANAL。しかし、どこかに通知を含める必要があると確信しています。そうしないと、MITライセンスに準拠しなくなり、プロジェクトでコードを使用するすべての権利が失われます。参考までに、Linuxカーネルには複数のライセンスを持つファイルがあり、SPDXヘッダーを使用します:lwn.net/Articles/739183
jmiserez

1
誰かがMITライセンスに基づいて構築されたGPLコードを試みたいと思うのはどれほど悲しいでしょうか。MITライセンスが意味するすべてに反しているようです。
アンドリューTフィンネル

8

すでに与えられた答えの説明に追加するものはありませんが、ソースファイルヘッダーsourceを整形する方法の手順は次のとおりです

2.2許可ライセンスファイルへのGPL修正の追加

より複雑なケースは、開発者がGPLのプログラムに組み込んでいる許可ライセンスのファイルに著作権で保護された変更を加える場合に発生します。この状況の開発者は通常、GPLを変更に適用します。(ただし、開発者は、代わりに、変更されていないファイルを管理する許容ライセンスなどの許容条件の下で新しいコードを提供することができます。このケースについては、2.3で説明します。)

外部プロジェクトの許容ライセンスは、そのプロジェクトのコードをGPLのプロジェクトに組み込む法的許可を与えますが、それでもGPLのプロジェクトの開発者は、許容ライセンスの通知保存要件に準拠する必要があります。ファイルごとの方法を使用するプロジェクトでは、許可ライセンスファイルに著作権で変更を加える開発者は、既存のファイルの上に新しい著作権表示と許可通知を配置し、開発者がファイルを変更したことを明確にする必要があります。ファイルの上部は次のように表示されます。

/*  
 * Copyright (c) 2007  GPL Project Developer Who Made Changes   
 *  
 *  This file is free software: you may copy, redistribute and/or modify it  
 *  under the terms of the GNU General Public License as published by the  
 *  Free Software Foundation, either version 2 of the License, or (at your  
 *  option) any later version.  
 *  
 *  This file is distributed in the hope that it will be useful, but  
 *  WITHOUT ANY WARRANTY; without even the implied warranty of  
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  
 *  General Public License for more details.  
 *  
 *  You should have received a copy of the GNU General Public License  
 *  along with this program.  If not, see .  
 *  
 * This file incorporates work covered by the following copyright and  
 * permission notice:  
 *  
 *     Copyright (c) YEARS_LIST, Permissive Contributor1   
 *     Copyright (c) YEARS_LIST, Permissive Contributor2   
 *  
 *     Permission to use, copy, modify, and/or distribute this software  
 *     for any purpose with or without fee is hereby granted, provided  
 *     that the above copyright notice and this permission notice appear  
 *     in all copies.  
 *  
 *     THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL  
 *     WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED  
 *     WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE  
 *     AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR  
 *     CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS  
 *     OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,  
 *     NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN  
 *     CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.  
 */

開発者は、許可ライセンスで要求されているように、元のコードに記載されている著作権表示、許可通知、および保証免責事項全体を保持することが非常に重要です。GPLの通知と許容ライセンスの通知が混在することがあります。これは、コードの出所と、通知に記載されているさまざまな著作権所有者によって付与された正確な許可の両方を曖昧にする混乱を招く行為です。異なる著作権所有者が異なる条件の下で貢献をリリースした場合、それぞれが特定の貢献に課した条件を指定する必要があります。上記の例のように、明確な分離を行い、インデントを使用することをお勧めします。

ファイル内の通知をこのように編成することにより、開発者が許容条件の下で貢献するかGPLの下で貢献するかを選択するのが便利になります。寛容な条件の下で貢献を提供したい場合は、下位グループに著作権表示を追加できます。GPLの下で貢献したい場合は、上部に著作権表示を追加できます。ただし、単一のソースファイルでは、そのようなファイルのどの部分が許容条件でカバーされているかを判断することは通常非常に困難であり、多くの場合完全に実行不可能です。追加のコードを許容条件の下でのみ利用可能にすることが目標である場合、2.3で説明されている方法を使用する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.