【Python】LGPLライセンスの商用・配布時での取り扱いについて

時計 2020.09.10 / 時計

【Python】LGPLライセンスの商用・配布時での取り扱いについて

Pythonによって開発したアプリケーションを商用利用または外部に配布したい場合、必ずライセンスというものが付いて回ります。

ライセンスの種類によって、商用利用が不可であったり、ソースコードを開示しなくてはならない等、様々な制約があります。

ライセンスの制約を無視して販売や配布を行ってしまうと、最悪の場合、多額の賠償金を払わなければならないケースになりかねないです。

そのためライセンスについては軽視せずに、きちんと取り扱うようにしましょう。

今回はLGPLライセンスについて解説していきます。

ここで解説していることは私の理解している内容であり、絶対正しいというわけではないです。
ライセンス関係は、非常に複雑であり、人により解釈が異なる部分もありますので、作成した物を商用利用する場合は、法務部門や専門家に相談してください。

LGPLライセンスについて

LGPL(GNU Lesser General Public License)ライセンスとは、オープンソースソフトウェア用のオープンソースライセンスです。
LGPLは、GPLというライセンスの制約を緩くしたライセンス、という見方もできます。

GPLライセンス

GPL(GNU General Public License)ライセンスでは、以下の特徴があります。

GPLライセンスの特徴

著作権表示を保持しなければならない

無保証である

誰でも自由に複製・改変・頒布が可能

GPLライセンスのプログラムを使用した場合、制作物はGPLライセンスで配布する(コピーレフト)

この中の4番がとてもやっかいで、制作物にGPLライセンスを含むプログラムがある場合はGPLライセンスになる。すなわちソースコードを開示して、誰でも改変・複製されてしまうということです。

頑張って作った物が簡単にコピーされ、また勝手に改変されてしまうということです。

GPLライセンスを含むソフトは、どんなに改変されて良いものになったとしても、「永遠にフリーソフトであり続ける」という呪いをかけられるということですね。

LGPLライセンス

LGPLライセンスは上記で説明したGPLライセンスを緩くしたライセンスであることはすでに説明しました。

では何が緩くなったのか。

それは4番のやっかいな部分です。

具体的には、
「LGPLライセンスのプログラムを制作物の中に組み込んだ場合は、LGPLライセンスで配布しなければならない」
となりました。

これは、
「LGPLライセンスのプログラムを動的リンクで使用した場合は、LGPLライセンスで配布しなくてもよい」
ということになります。

そしてこのLGPLライセンス自体は、ライブラリやモジュールに使用されています。

IT用語の確認

動的リンクとは、プログラムを中に組み込むのではなく、制作物の外に置いて、必要な時に呼び出して利用すること

商用利用や配布時の取り扱い

LGPLライセンスのプログラムを制作物に組み込んで、LGPLライセンスで制作物を扱う場合は、以下の義務が課せられます。

LGPLライセンスでの義務

著作権情報の表示

プログラムを変更した場合は、変更箇所の明示

制作物のソースコードの開示

商用利用に関しては、LGPLは可能となっています。

ソースコードの公開例

ソースコードの開示に関しては、Gitに保存しているソースコードのURLを張っている場合もあれば、自社サイトに公開している会社もありますし、以下のような文面をWebサイトのライセンスページ等に記載して、ソースコードが欲しい場合は連絡してください、としている会社もありました。

GPL・LGPLが適用されるソフトウェアの利用について
〇〇には、GNU General Public License (GPL)またはGNU Lesser General Public License (LGPL)に基づきライセンスされるソフトウェアが含まれています。
お客様は、当該ソフトウェアのソースコードを入手し、GPLまたはLGPLに従い、複製、頒布及び改変することができます。
ソースコードは現状のまま、かつGPL/LGPLに基づき提供されます。
GPLについてはこちらのURLでご確認ください。 http://www.gnu.org/licenses/gpl.html
LGPLについてはこちらのURLでご確認ください。 http://www.gnu.org/licenses/lgpl.html

ソースコードの入手をご希望される方は、〇〇へご連絡ください。
なお、ソースコードの内容等についてのご質問にはお答えいたしかねますので、あらかじめご了承ください。

ライセンス・著作権の記載場所

これに関しては、そこまで自身はないのですが、まずはReadmeがある階層にLisenceテキストファイルを作成して、そこにライセンス・著作権情報を入れます。

あとは念のため、制作物の各ファイルにライセンス・著作権情報を書き込んでおけば、ひとまずは安心かなと思います。

PythonでのLGPLライセンスのパッケージ

私が使用したことがあるパッケージでは、img2pdfがLGPLライセンスでした。

このパッケージは画像ファイルをPDFに変換する際に使用します。
そのため画像変換ソフトなどで、よく使用されているパッケージであると思います。

このパッケージを組み込んだ制作物を配布する場合は、LGPLライセンスになるので、注意して扱ってください。