uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

GPLにおいて納品は頒布ではない?

いままで、GPLソフトウェアを改変/拡張もしくは利用の対象としたプログラム製造請負契約において、その成果物の「納品」は、GPLの「頒布」に該当すると思ってました。つまり、頒布を行わなければ生じないGPLの義務(ソース公開義務その他)は、納品時にも課されると。

このことは、受託開発業務ではとても重要な話です。

しかしながら、IPAからダウンロードできる「GNU GPLv3 逐条解説書」には以下のようなことが書いてあります。

44ページ目

例えば、企業Aがシステム開発会社Bに、他者(GPLv3 プログラムのライセンサ)が開発 し公開しているGPLv3 プログラムCの改変等の作業を委託し、その成果物C’を納品させる場 合、第 0 条第 7 パラグラフの定義によれば、上記の目的で当該プログラムC・C’を A・B間 で授受する行為も、コンベイに相当すると解される。したがって、A及びBは、GPLv3 プロ グラムC・C’やそれとリンクした独自開発のプログラムの対応ソースを開示する義務(第 6 条)や特許非係争義務(第 10 条)を負うことになる[40]。しかし、このような事態は、ビ ジネスにおけるGPLv3 プログラムの利用を敬遠させることにつながるおそれがある。

f:id:uehaj:20100710225513p:image

GPLv2 でもこれと同様の問題があった。FSF は、この点に関し、GPL に関する FAQ にお いて、上記のような B の A への納品行為は配付(distribute、GPLv3 のコンベイに相当)に 当たらないとの解釈を公開することで対処していた。
GPLv3 では、このような行為はコンベイに当たるものの、GPLv3 の定める条件を課され ることなく行うことができることを明示的に規定することで、この問題に対処した。これ が2の趣旨である。

(太字は本記事執筆者)

つまり、上に書いてあることを信じるなら、

  • GPLv2では、納品は頒布に相当しないとの解釈がFAQで公開されている。
  • GPLv3では、納品はコンベイ*1にあたるものの、GPLv3の条件は課されない。

とのことです。ほんとうなら、ちょっとびっくりです。

ただ、前者の根拠としての、GPLv2に関する「納品は頒布に相当しないとの解釈」は、英文FAQをひとしきり探したのですが見つけることはできませんでした。本当なんですかね。

*1:GPLv3において定義されている用語。[http://www.gnu.org/licenses/gpl-faq.html#ConveyVsDistribute:title=GPLv2における頒布(distributionに相当)]