2018年3月18日日曜日

GPLのソフトウェアをサーバサイドで使う場合の著作権表示について

GPLのライブラリをサーバサイドで使う場合、ソースコード公開義務はないという解釈が一般的です。

ただ、著作権表示に関してはどうなのよ、というのは今まであまり深く考えたことはありませんでしたので条文を読んで解釈してみます。

なお、本記事ではGPL自体の是非や「抜け道」を使うことの是非については論じません。また、GPLのバージョンは本質的な問題ではありませんが、一応解釈する文書はGPLv3です。
多分他のオープンソースライセンス(AGPL以外)でも同様だと思います。

そして、この解釈が正しいことを保証しません。この解釈が間違っていたとしても一切責任を負いませんのでご了承ください。
(むしろ間違っていたら教えてください)

ちょい長いので、結論だけ知りたい人はシュパッとスクロールして「結論」を見てください。

GPLおさらい


GPLといえば「このプログラムはソースコード公開するよ。何に使ってもいいよ。再頒布してもいいよ。改変してもいいよ。ただし改変した場合は、改変したものもGPLにしてね」というライセンス(意訳)なわけですが、「改変したものもGPLにしてね(改変したプログラムを頒布するならソースコード公開してね)」という条件によって企業では使いにくかったりするわけです。

ただし、「サーバサイドで使えばプログラムの頒布じゃないからソースコード公開しなくていいじゃん!」という解釈のもと、ウェブサービスではGPLものが結構使われています。

どういうことかというと、ウェブサービスはプログラムの出力結果の頒布であって、プログラムの頒布ではないのでソースコードの公開義務はないという解釈です。
GCCでコンパイルされたバイナリを頒布してもソース公開義務がないのと同じ解釈です。

余談ですが、その「抜け道」を回避するためにAGPLが作られたという経緯もあります。

発端

ところで、ソースコード公開に関してはこれでいいとして、著作権表示に関してはどうなのよ?という話が先日社内で出てきました。

純粋なウェブサービスでは必要なら著作権関連のページを用意してそこに表示できますが、例えばAPIのみのサービスでは専用ページを用意できまないのでどうしたもんでしょうか。
(本当に必要ならカスタムレスポンスヘッダに含めるなり「著作権情報を取得するAPI」を作るなりすればいいかもしれませんけどね)

GPLはソース公開に関する議論や情報はいろいろありますが、著作権表示についてはあまりなくて即答できなかったのでちょっと調べてみました。

そもそも今までGPLの条文をまじまじと見たことなかったよ。

調べる前に予想してみる

GPL本文を解釈する前に、結果を予想してみます。

表示義務ないんじゃね?


きっと、著作権表示にもプログラムの頒布が条件に含まれてるんじゃないかと。

とりあえず条文を読んでみようか


英語わかんないので日本語との対訳を見つけてきました。まずはこのPDFファイルをダウンロードしてね。


問題の箇所


7ページ目にこんな記述があります。
5. 改変されたバージョンのソースのコンベイ
あなたは,以下の条件のすべてを満たすことを条件として,本プログラムに基づく著作物,又は本プログラムに基づく著作物を本プログラムから作成するための改変点を,本第4条の定めに従って,ソースコード形式でコンベイすることができる。
ふむふむ。GPLのプログラムを使ったサーバサイドプログラムは改変されたバージョンだから、この条件を満たせばコンベイできる。

「以下の条件」は、本記事の目的とは直接関係ないので省略します。

鍵は「第4条の定め」と「コンベイ」かな。この2つを掘り下げてみます。

第4条の定め

ここで出てきた「第4条の定め」。どういうものかというと、
あなたは,あなたが受領した本プログラムのソースコードと完全に同一の複製物を,いかなる媒体を用いるかにかかわらず,コンベイすることができる。ただし,著作権に関する適切な告知事項を個々の複製物に目立つように適切な方法で掲載すること,本許諾書及び本第7条に従い追加された非許可条項のすべてが当該複製物に適用される旨の告知をそのまま保持すること,いかなる保証もなされない旨の告知をそのまま保持すること,及び本プログラムと共に本許諾書を受領者に提供することを条件とする。
コンベイの条件の1つに「著作権に関する適切な告知事項を個々の複製物に目立つように適切な方法で掲載すること」。はい来ました。ここテストに出ます。

ここが改変元プログラムの著作権表示に関わる部分でしょう。「ちゃんと表示したらコンベイしてもいいよ」と言っているわけです。

コンベイ

で、コンベイって何よ、という話になるわけですが…

ちょっと戻って、第0条の「定義」によると
著作物の「コンベイ」(convey)とは,プロパゲートに当たる行為のうち第三者が複製すること又は複製物を受領することを可能にする行為をいう。ただし,コンピュータネットワーク上での単なるやりとりであって複製物の伝送を伴わない場合は,コンベイに当たらない。
プロパゲートという用語も出てきましたが、これはすぐ上で定義されているのでそちらを参照してください。
ここで重要なのは、「第三者が複製すること又は複製物を受領することを可能にする行為」という部分。
つまり、「複製」が絡むという点です。

えっとつまり、サーバサイドのプログラムは(Quineや、プログラムそのものを配信する場合を除き)複製を誰かが受け取るわけではないので、コンベイには相当しないということ。

あと、複製云々を除いて、語義としては基本的にコンベイ頒布とみなして問題なさそうです。

サーバサイド利用がコンベイではないなら…?

コンベイしない場合についてはどうなのよ、という話ですが…
そもそも、著作権表示に関する記述がここ以外に見当たりません

てことはアレだ。予想通り、GPLは著作権表示に関してもサーバサイドは想定していないということかな。
想定していない以上、著作権表示は義務ではないという解釈でいいのかな。

結論

著作権表示する義務はないんじゃないかな多分。

公式ページのFAQ

参考までに、GPL公式ページ(の日本語訳)のFAQでは
GPLでは、すべての複製に適切な著作権表示を載せることを要求しています。
と書いてあります。

やっぱり重要なのは(プログラムの)複製であって、出力に関しては話題にしていないということですかね。

注意事項

最初に書いたとおり、この解釈が正しいことを保証しません。この解釈が間違っていたとしても一切責任を負いません。

また、著作権表示を書かないことを推奨するものではありません。道義的には書けるなら書いたほうがいいとおもいます。

0 件のコメント:

コメントを投稿