GPLのOSS利用でソース開示したプログラム

 GNU GPLv2のライブラリなどを利用してA社がアプリを開発し、GPLの条件を満たすため、アプリのソースコードを添付して、製品出荷したとします。
製品を受領したB社は、ライブラリを含むアプリのソースコードがあり、アプリの不具合を改修することも可能です。
 ※注:大抵の保守契約では自分で改修すると保守できなくなることが多いので注意が必要です。勝手に改修されたものを保守することは無理があるからです。
    それについてはGPL違反でもなんでもありません。

 ところが、B社は、改修したアプリを販売することも、無償で公開することもできません。
その理由をご説明します。
(2023.9.19削除)

1. A社がプログラムのソースコードを添付する理由

 A社アプリには、GPL OSSのバイナリが含まれているからです。
GPLv2のOSSのバイナリを頒布する際、GPLv2(日本語参考訳、ただし、節→条に変更)では、第3条で以下のように再頒布の許諾条件が指定されています。

3. あなたは上記第1条および2条の条件に従い、『プログラム』(あるいは第2条における派生物)をオブジェクトコードないし実行形式で複製または頒布することができる。ただし、その場合あなたは以下のうちどれか一つを実施しなければならない:
a) 著作物に、『プログラム』に対応した完全かつ機械で読み取り可能なソースコードを添付する。
(以下省略)

ここでの『プログラム』にGPL OSSだけではなく、A社のプログラムが含まれる理由は、GPLv2(同上+契約書→許諾書の変更)の第2条の以下の部分になります。

2.あなたは自分の『プログラム』の複製物かその一部を改変して『プログラム』を基にした著作物を形成し、そのような改変点や著作物を上記第1条の定める条件の下で複製または頒布することができる。ただし、そのためには以下の条件すべてを満たしていなければならない:

…しかし、あなたが同じ部分を『プログラム』を基にした著作物全体の一部として頒布するならば、全体としての頒布物は、この許諾書が課す条件に従わなければならない。…

A社のアプリは、ここでいう「『プログラム』を基にした著作物全体」であり、「全体としての頒布物」ですので、それに含まれるA社のプログラムもGPLという許諾書が課す条件(第3条「ソースコードを添付する」)にも従わなければならないわけです。

2. ソース開示されたアプリを再頒布できるのか?できない理由

 さて、GPLのOSSと共にソース開示されたA社のプログラムを改修したB社は、そのままでは、改修されたB社のアプリを販売するどころかWebに公開することもできません。
それは各プログラムが、以下のような権利関係にあるからです。

GPLのOSSA社のプログラムA社のアプリ改修プログラム*1
著作者OSS開発プロジェクトA社A社B社 - 改修に創作性が無ければA社
著作権者OSS開発プロジェクトA社A社、OSS開発プロジェクトB社、A社 - 改修に創作性が無ければA社のみ
*1:通常のバグfix程度では、つまり、他の人が改修したなら記述が異なるぐらいでなければ、創作性は生まれません。

つまり、B社のアプリは、OSS部分はGPLで再頒布を許諾されていても、A社のプログラム部分は、改修してもA社に著作権があるので、A社の許諾が無いままB社が再頒布すると、著作権侵害になるからです。
※A社が明示的に再頒布を禁止している必要性もありません。OSSライセンスのような再頒布の許諾を添付していなければ、禁止がデフォルトです。
A社のプログラムが、GPLの条件でソース開示されたからといって、A社のプログラムがGPLになるわけではありませんので、GPLで再頒布が許諾されたわけではないのです
(2023.9.19追記)
しかし、GPLv2(同上)第2条b)に以下のようにあります。

b) 『プログラム』またはその一部を含む著作物、あるいは『プログラム』かその一部から派生した著作物を頒布あるいは発表する場合には、その全体をこの許諾書の条件に従って第三者へ無償で利用許諾しなければならない。

つまり、A社は、A社アプリをGNU GPLv2のライセンスにしなければ、GPLv2 OSSを含む形で頒布できません。
※「A社アプリ」であって「A社プログラム」ではないことに注意しておいたほうがよいでしょう。
これは、A社がB社など受領者に、A社アプリの再頒布をGPLv2の条件で許諾することを意味します。

これにより、B社はGPLv2の条件を満たすと、アプリの再頒布(販売やWeb公開)ができます。
(追記終わり)
いわゆる「GPLに感染」などしません。
そんなこと(感染)が起きるとしたら、以下の著作権法に違反することになります。
(2023.9.19削除)

さいごに

 以上のことから、GPLでソース開示されたプログラムであっても、再頒布が許諾されていないプログラムは当然、再頒布できません。
(2019.9.19追記)
そのため、GPLv2では第2条b)で第三者へGPLv2で再頒布のライセンスすることを条件に加えています。
結果、

  1. A社のプログラムのソース添付は、GPLv2のOSSを含む形で頒布する際の条件
  2. B社がアプリの再頒布できるのは、上記条件でA社がアプリにGPLv2のライセンスを付けたため

という二つの事象が発生していわけです。
(追記終わり)

含まれるプログラムそれぞれの著作者/著作権者が誰で、それぞれの著作権者が再頒布を許諾しているかを確認する必要があることを注意しましょう。

 2023.9.18-19 姉崎章博