正直なにも新しい話でもないんだけど自戒のために残しておく。
Mastodonでまたライセンス騒ぎがあった。
きっかけとなったのは机バンバンでおなじみ(?)ナイセンのインスタンス、3.muのこんなToot。
マストドン 3.nu(さんぬー)はツイッター連携が可能。ツイッターからの登録、ツイッターへ同時ツイートが可能です。時々「ソースはどこ?」と質問がありますが、自社開発です。また、公開予定は現状ありません。申し訳ナイセンm(__)m ☞https://3.nu/
https://3.nu/@itallinc/1573585
あ、Twitterでもおんなじこと言ってましたね。
マストドン 3.nu(さんぬー)はツイッター連携が可能。ツイッターからの登録、ツイッターへ同時ツイートが可能です。時々「ソースはどこ?」と質問がありますが、自社開発です。また、公開予定は現状ありません。申し訳ナイセンm(__)m ☞https://t.co/hYe8Opsr9N
— ナイセン【公式】スマホで03発着信・浜松町リアルストア (@itallinc) May 23, 2017
で、飛んで来るのが「ソースコード開示しろ〜〜〜」のリプ祭です。
Mastodon のライセンス
これについては他でも散々言われていますが、MastodonのライセンスはAGPL v3 (GNU Affero General Public License, version 3) です。
自分もすっかり肝心な部分を勘違いしてしまっていた節があるのですが、このライセンスはGPLをベースにしているものの「ASPループホールを閉じる」設計となっています。つまり、「GPLならばWebアプリの場合、運営者はアプリケーションを頒布しないのでサイト運営者はソースコード開示の義務がない」一方で、「(Mastodonのような)AGPLのWebアプリの場合、ユーザーはソースコードの開示を請求できる」わけですね。(まだ誤りがある気がするけどうまく日本語にできない)
ライセンスは自由のための約束
AGPLクソじゃんみたいなこと言ったら怒られました。当然です。
そもそもオープンソースの概念がなければ(今でも持っていない人は大勢いるでしょう)人の作ったものを勝手に自由に使うことは出来ないでしょう。もちろん、オープンソースのライセンスでも「いわゆる自由」の範囲はライセンスにより異なるので再配布が制限されたり、使用用途が制限されることもあります。
ライセンスはプログラムの著作者と利用者の間における、「自由のための約束」なんです。
GPLやそれの派生ライセンスは大抵、ソースコードさえ公開しておけば使用用途を制限することは出来ません。(一部の制約を設けることは禁じられていますが……)
これにより、そのアプリケーションや派生物、コミュニティの成長なんかにも繋がるとか。
よく「自由ってなんだよ」みたいに言われる気がするんですが……まあそんな情報ネット上にいっぱい転がってますよね(戉飛ばさないでそこ!)
弱いGPLと強いGPL?
ところで私がAGPLを勘違いしてた理由に、ほかのGPL派生ライセンス、つまりLGPLと何故か混同してしまった部分がある、というのがありました。
といっても、LGPLとAGPLはむしろ相反するライセンスと言って過言でないと思っています。
- LGPLはライブラリに向けたライセンスであって(ほんと?)その著作物がライブラリとして利用されている場合コピーレフトをほとんど受けない (GPLより弱い)
- AGPLはWebアプリケーションのようなものに向けたライセンスであり、頒布しなくてもコード開示の必要性が生じる (GPLより強い)
私はなんでそんな読み違えをおこしたんですかね……気になります
ところで WordPress がAGPLだったら……
いきなりですが、WordPress のライセンスは GPL v2 (or later)です。1
(AGPLを誤解していた原因の一つはGPLを意識しすぎていたことですが、根本的な違いを間違えていたので下手な言い訳にしかなりません……)
で、WordPressはGPLなので2その派生物であるプラグインやテーマはGPLのコピーレフトを受けます。つまり、これらは無償優勝にかかわらずGPLで頒布する必要があるわけです。3
では、もしWordPressそのものがAGPLだったとすれば、それを取り巻く環境はどうなっていたのでしょうか。
正直このようなパターンを想像した場合、どこまでをユーザーと定義できるのか自分にもよくわかりません……が、「ネットワークユーザー」ということなので基本的には「サイトにアクセス(閲覧)できる全員」という認識でいいのかなと思います。
このような場合、有償無償に関わらずほぼすべての制作物に開示義務が生じることになります。もしこのような世界線ならばAGPLを恐れた制作屋がこれを避けWPを選ばずに今ほどWPが流行らず、結果として今ほどのシェアにはなっていなかったかもしれません。(むしろ逆に、AGPLでもコードをちゃんとみんなが請求に応じて開示できていればそれでも成り立つんですが企業サイトとかがわざわざやるとは考えにくい……それに今のW.orgだって大半はコードが公開されていますがされていない部分も結構あるんですよね。)
プラグインやテーマの販売で収益を得るのも難しくなる部分があるかもしれません。まあそもそもこれに関しては今でもサポート販売のライセンスモデルが主流なんですが……
WordPress.com のようなSaaSのサービスモデルにも相違が出ていたかもしれません。独自機能を持たせても、それをすべて公開する必要が生まれるから。(まあwp.comの中核であるマルチサイトは.orgでも利用できるし、多くの機能がJetpackでオープンソースになっていたりもしますが……)
IF話はするだけ無駄みたいによく言われますが、つい考えちゃったので……
あ、WPにおけるライセンスの話もネットにいっぱいありますね。たとえば西川さんのとか。
勘違いしてたライセンス、後から則せれば問題ない
まあ問題ないかどうかはライセンスによりそうなところですが、ライセンスを勘違いするなんてことはまあザラにあります。
WordPressの無償/有償のテーマ配布サイトでもよく「ライセンス違反の条項」が話題になります。(たとえばアダルトサイトでの利用を禁じるとか。)
人はだれでも勘違いするし、間違いを犯すのです。多くのライセンスの場合、ぞれを見越したものになってたはず……?
よく「GPLの罠」みたいな話を見かけますが、「罠ではない」のではないでしょうか。私と同じ、ただの理解不足。
ライセンス違反を指摘されたら……
GPL(や他のライセンス)違反を指摘された場合、まずは違反箇所を見直すべきでしょう。例えば問題となる文言や制約を取り払う、「ライセンスと相反する部分はライセンスを優先する」記述にする4……など。
ソースコードを請求されたら……
よくLinuxを使用していてソースコードを開示せずに請求されて罠罠言ってる話がありましたが、正当な請求には応えるしかないでしょう。
継承してる以上避けられないんだし、逆に考えるんだ。開示すれば許されるんだぜ……? (もちろん秘密鍵とかは隠せるし!!!)
ライセンスの罠にハマった!どうすれば……
何度も言うように罠って言葉は好きじゃないけどもしそこで詰んでしまって貴方が取れる行動は
- オープンソースを使うのをやめる
- 今後すべて公開していく
もちろん既存の出回ってるものについては取り返しがつかない、と考えるべきなんでしょうかねぇ……
(リスクとメリットの問題になるんでしょうが……隠すほどのリスクがあるの?など。)
ところでナイセンは……
ライセンスに対する認識を改め、ソースコードの開示をしたようです……取り急ぎzipで。
さんぬーのソースコードの件、とりいそぎ、フッターとサイドバーのリンクからDLできるようにしました。https://t.co/EfGbik8IEohttps://t.co/SthzBYlxxf
— ナイセン【公式】スマホで03発着信・浜松町リアルストア (@itallinc) May 23, 2017
……なんというべきなのかな?とりあえずありがとうございます。AGPLについて認識を改める私にとってもいい機会でした。(そこ?)
そして、Mastodonのフォークを運営する際はソースコードの開示を出来るようにしましょう。言われる前にGitHubで公開しておくのが得策ですね。
(そういやMastodonのマネタイズ難しい問題にも繋がるのか……そもそもどうやってマネタイズ出来るんだ……?)
(途中から書いてることが迷子になったので内容に不備がある気がします。おかしければ指摘してください……)
頓珍漢な発言に突っ込んでくれたtadsan氏、ありがとうございました。
P.S. MastodonのoEmbedがつらすぎるのでどうにかしたい。
- いきなりWPを持ち出したのはGPLを大体理解したきっかけがそのあたりだからかもしれません。というか自分と関わりの多い部分。 ↩
- そもそもWPがGPLなのもb2からGPLを継承しているためです。 ↩
- もし使用しているテーマやプラグインがGPLでなければ改善してもらうべきですし、されないようならばそれはライセンス違反です。 (少なくともコミュニティでは相手にできません) ↩
- 無理矢理なようにも見えますが、実際にファーストサーバさんのテンプレートキングはこの方法で特約を設けて対応されています。 ↩