更新:PyQtライセンスについて間違っていました。それは単なるGPLライセンスではありません。 PyQtの作成者は、PyQt GPL_EXCEPTION.TXT
ファイルに明確にリストされているオープンソースライセンスの1つである限り、ユーザーが別のライセンスで独自のコードをリリースできるようにする特別な例外セットを含めます。
このディスカッションの目的のために、 PyQt に依存する次の完全に機能するアプリを検討してください。
# hello_world.py
from PyQt4.QtGui import QApplication, QPushButton
app = QApplication([])
button = QPushButton("Hello, World!", clicked=app.quit)
button.show()
app.exec_()
(ディスカッションに関連する場合は、Pythonこのようなプログラムは、それ自体「リンク」する必要がないことに注意してください。)
私の好みは、コードをpermissiveライセンスの下で配布することです。 BSDライセンス。ただし、PyQtは GNU GPLGNU GPLと特別な例外。それを念頭に置いて、ここで私の選択肢は何ですか? PyQt自体を配布していなくても、GPLでリリースする義務がありますか?
より具体的に言うと、次のシナリオ(ある場合)のうち、BSDライセンスの下でコードをリリースすることを許可されているのか、GPLの下でリリースする義務があるのか?
hello_world.py
とPyQtを含む完全にパッケージ化されたバイナリを提供します。hello_world.py
とPyQtのソースコードを1回のダウンロードで提供します(たとえば、.tar.gz
)。しかし、それらを一緒に実行するかどうかはあなた次第です。hello_world.py
を1人で提供し、自分でPyQtを取得するようにします。私たちのほとんどは弁護士ではないことを知っているので、回答の出典を引用できるとありがたいです。
OK、これは思ったより簡単です。 PyQtの人々は、バニラGPLでソフトウェアをリリースしただけではありませんでした。彼らは特別なexceptionをライセンスに追加しました。これにより、非GPLライセンスでMYコードをリリースできます。ただし、すべてのライセンスが許可されているわけではありません。PyQtソースコードに含まれているGPL_EXCEPTION.TXT
ファイルにリストされているオープンソースライセンスの1つを選択する必要があります。この記事の執筆時点では、この例外により[〜#〜] mit [〜#〜]、[〜#〜] bsd [〜#〜]を使用できます、[〜#〜] lgpl [〜#〜]、およびその他いくつか。
したがって、上記の質問で概説されている特定のシナリオに対処するには:
GPL_EXCEPTION.TXT
にリストされているすべてのライセンス。アプリケーションが依存するライブラリの1つがGPLでライセンスされている場合、BSDで配布することはできません。また、ソースコードを閉じることもできません。
GPLと商用ライセンスを使用したデュアルライセンスは、ベンダー間で共通の取り決めです。基本的に、「真の」オープンソースアプリケーションにライブラリを使用したい場合(アプリケーションのソースコード全体をエンドユーザーに提供し、エンドユーザーが望んでいることを実行できるようにする場合) または GPLに準拠している限り)、その目的のためにライブラリを使用することもできます。それ以外の場合は、ライセンスの商用コピーを購入することにより、ソースを閉鎖する権利を得ることができます。
簡単に言えば、アプリケーションにソースコードを提供している限り、3つのシナリオはすべてOKです。配布ライセンスは、BSDではなくGPLです。
私の引用はGPLライセンスです。