派生物にも同じ条件での公開を義務づける、コピーレフト型の代表的OSSライセンス。
GPL(GNU General Public License)とは、派生物にも同じ条件でのソース公開を義務づける、コピーレフト型の代表的なOSSライセンスです。Linux(OSの一種)など、多くの著名なOSSで採用されています。
身近な例で考えると、「もらった料理のレシピを改良したら、その改良レシピも必ず公開する」という約束に似ています。便利な部分を取り入れる代わりに、自分の工夫もみんなに返す──この「自由を受け継がせる」という考え方がGPLの核心です。
上の図解のように、GPLコードを改変・組み込みすると、その派生物全体に公開義務が伝わっていくのが大きな特徴です。GPLは、ソースコードがずっと自由であり続けることを保証するための仕組みなのです。
コピーレフトとは、改変・再配布する場合、その派生物も同じライセンスでソース公開しなければならない、という決まりのことです。GPLはこのコピーレフトを採用した代表的なライセンスです。
「コピーライト(著作権 = copyright)」をもじった言葉で、著作権の力を使って「自由であり続けること」を逆に義務づけるのがねらいです。普通の著作権が「使わせない」方向に働くのに対し、コピーレフトは「自由を手放させない」方向に働きます。
上の図解のように、GPLのコードを誰かが改変しても、その改変版もGPLとして公開され、自由が次々と受け継がれていきます。「自由を継承させる」という言葉でこの性質を覚えておくとよいでしょう。
GPLの最大のポイントは、GPLのコードを組み込んだソフトは、全体がGPLになるということです。つまり、自分で書いた独自部分も含めてソース公開義務が伝播します。
この性質には次のような影響があります。
・ソース公開義務が伝播:組み込んだ部分だけでなく、ソフト全体を公開する必要がある
・商用の独自製品に組み込みにくい:中身を秘密にしたい製品には使いづらい
・OSSの自由が保たれる:改変版が囲い込まれず、コミュニティに還元される
これに対し、MIT や BSD といった非コピーレフト型のライセンスは、組み込んでもソース公開を強制しません。そのため、ソースを公開したくない商用製品ではこちらが選ばれます。上の図解で、GPL(左)は独自部分も公開、MIT(右)は独自部分を非公開にできる違いを比べてみてください。