ライセンス(L)GPLのお話(PySide/PyQt)

概要

PyQtを使うか、PySideを使うか。

ん。何が違うんだ。 一番怖いのはライセンスの部分。

以下はPyQtのGithiub

f:id:kimoppy126:20181202131403p:plain

GPLとなっている。

一方こちらPySideのGithub f:id:kimoppy126:20181202132019p:plain

LGPLとなっている。

Githubに公開されているようなオープンソースのソフトウェアはほとんどがこの辺りのライセンスとなっている。 つまり、このライセンスさえ学べば怖いことはない。

読んでいく

GNUライセンスに関してよく聞かれる質問」をじっくり読んでみる。 Q&A形式でライセンス全文読みたくないヒトにも優しい使用となっている。

改変したコードの公開

GPLは、改変された版のソースコードを公に発表することを要求しますか? (#GPLRequireSourcePostedPublic) GPLでは、あなたが改変した版をリリースすることは要求してはいません。改変を加えて、リリースせずに個人的に使うのはあなたの自由です。これは組織(企業を含む)でも同様で、ある組織は、改変した版を用意してそれを組織外にリリースすることなく内部的に利用することができます。 しかし、もしあなたが改変された版を何らかの形で公にするならば、GPLはあなたが改変したソースコードをユーザがGPLのもとで入手できるようにすることを要求します。

改変したコードを公開する場合、改変前のソースコードも公開する必要があります。 さらに公開する場合そのライセンスはGPLである必要があります。

翻訳

あるコードを異なるプログラミング言語に翻訳することについてGPLはどう言ってますか? (#TranslateCode) 著作権法では、作品の翻訳は改変の一種であると考えられています。ですから、GPLが改変版について言っていることが翻訳版にも当てはまります。

翻訳も改変に入ります。

再配布

GPLの及ぶプログラムのコピーを誰かが持っていると知っている場合、わたしはその人にコピーを下さいと要求できますか? (#CanIDemandACopy) いいえ。GPLは、ある人にもし、その人がそうすることを選んだ場合、その時に、プログラムのコピーを作成し、再配布する許可を与えます。その人は、プログラムを再配布する選択をしない権利も持つのです。

再配布を断ることもできます。

商用利用

GPLは金銭目的でプログラムの複製を販売することを許可していますか? (#DoesTheGPLAllowMoney) はい。GPLは、誰もが販売することを許可しています。複製を販売する権利は自由ソフトウェアの定義の一部です。一つの特別な状況を除いて、請求できる値段に制限はありません。(ひとつの例外とは、バイナリのみのリリースに要請されるソースコードを提供する書面による申し出(におけるソースコードの提供に関する料金)です。)

商用利用もOKです。

GPLが適用されたソフトウェアを料金を取って配布する場合、わたしは公衆が料金なしでもソフトウェアを手に入れられるようにしなければならないでしょうか? (#DoesTheGPLRequireAvailabilityToPublic) いいえ。しかし、もし誰かがあなたに料金を払って複製を手に入れたならば、GPLはその人が公衆にその複製を、料金のありでもなしでも、リリースする自由を与えています。たとえば、誰かがあなたに料金を払ったならば、その人は複製を一般公衆に向けてウェブサイトで公開することが可能です。

商用利用で販売したものに関しても同様にGPLが適用するため、料金関係なく複製の配布も自由です。

制限の強化

GPLは、改変されたバージョン、あるいはベータ版を機密保持契約(NDA)のもとで配布することを許可していますか? (#DoesTheGPLAllowModNDA) いいえ。GPLは、あなたの改変したバージョンはGPLに述べられたすべての自由を持たなければならないと述べています。ですから、あなたからあなたのバージョンを受け取った誰もが、そのバージョンの複製を(改変しても、改変なしでも)再配布する権利を有しているのです。あなたは、著作物のどのバージョンであっても、より厳しい制限をつけて配布することはできません。

より厳しいライセンスに変えるのは当然なしです。

GPLとLGPLの違い

GPLとLGPL、名称としてはLibraryを示すLが付いたのみですが、その意味合いは大きく変わります。

この非(L)GPLプログラムはそれが二次的著作物(derivative work)ではない場合、任意の条項のもと頒布(distribution; 配布)してもよい。二次的著作物である場合は、LGPLv2.1第6節またはLGPLv3第4項の条項により、「顧客(カスタマー)自身の利用のための改変ならびにそのような改変をデバッグするためのリバースエンジニアリング」を許諾する必要がある[3]。 https://ja.wikipedia.org/wiki/GNU_Lesser_General_Public_License

GPLの著作物はコピーレフト(著作権が二次的著作物にも引き継がれる)が適用される点で商用利用する際には利用しづらいものでしたが、 LGPLの著作物であれば、「動的ライブラリとして使う分には(著作物自体を改変しないのであれば)」ライセンスをより保守的なものにして配布・販売することができるようです。

なお、静的リンクとして使用する場合はソースコードまたはオブジェクトコードの頒布に制限をかけることができず、
改変する場合はコピーレフトが適用され、二次的著作物のライセンスはLGPL若しくはGPLとする必要がある様です。

PyQtとPySide

PySideはLGPL、PyQtはGPLで公開されています。 企業で開発するのであれば、できればソースコードを公開しないライセンスのものを使いたいはず。
PySideを使うべし。