OSSライセンスMeetup Vol.2「実録:GPL違反とその対応を振り返る」参加レポート

2019年2月21日(木)に開催された「OSSライセンスMeetup Vol.2「実録:GPL違反とその対応を振り返る」の参加レポートをお届けします。少しでもMeetupの雰囲気や魅力をお伝えできればと思います。

OSSライセンスMeetupとは

その名の通り OSS(Open Source Software)のライセンスに関するテーマを扱うMeetupです。エンジニアに限らないさまざまな人に向けた「OSSライセンス」についての啓蒙や参加者間での知見の共有のための場という、ありそうでなかったMeetupです。

今回はGPLに主な焦点を当て、前半は日本国内でGPL違反事例として語られるプロジェクトで当事者となった会社に在籍していた宮田晃佳さんを迎えて、状況や経緯、解決策、対応後の反響などについて振り返りました参考資料⁠。

これまで、GPL「汚染」というような表現でいたずらに危機感を煽る形で説明をされることが多くありましたが、実際に起こった現場の声を反映した事例の説明は数少なく、今だから言えるさまざまな知見を共有していただきました。後半ではLibreOffice日本語チームメンバーである小笠原徳彦さんと共に、宮田さんが経験した事例やOSSライセンスについてのディスカッションとなりました。

Meetupの雰囲気

写真1 会場はサイオス株式会社さんの9Fラウンジ
写真1 会場はサイオス株式会社さんの9Fラウンジ

前回より募集枠が少なかったにもかかわらず、70人近くの人が詰めかけました。通常の勉強会にありがちな当日キャンセルも少なく、みなさん熱心に聞き入っていたのが印象的です。前回も思いましたが、ライセンスの話でこれだけの人が集まるのも凄いですし、参加している方々も、エンジニアはもちろん、研究者や会社の法務担当と多彩で、とても興味深いMeetupでした。

セッション「実録:GPL違反とその対応」

GPL違反とその対応

2002年(平成14年)に、宮田さんが当時所属していた会社で、従来のLinux環境では不可能な高品位な入出力を実現したEPSON社のプリンタとスキャナ向けのドライバが公開されました。当時はLinuxでの印刷やスキャナでのデータ取り込みはWindowsなどに比べると品質の低いものしかなく、このドライバは当時としては画期的なものでした。

しかし公開からしばらくして、該当の配布ソフトウェアを解析した海外のユーザから「GPLでライセンスされているソースコードを利用しているようだが、配布されているドライバのライセンス条件がGPLが課す条件と異なっているのでは?」と指摘を受けました。改めてプロジェクトメンバーで調査・検討したところ、確かにGPLの条件に合致しない形での配布になっていることが確認されました。

合致しないものとなっていた原因は次のようなことでした。

  • 各国語対応のため、gettextパッケージGPL-2ライセンスのソースコードの一部(libintl)を利用したにもかかわらず、該当の配布物(ライセンスを明確にしていないソースコード・非GPLのソースコード、およびバイナリのみ公開のライブラリを含む)がGPLでの配布ではなかった
  • ソースコードを公開していないライブラリ内でLGPL-2.1のライブラリ(glibc)を利用していたが、該当の配布物はリバースエンジニアリングを禁止するなど、使用許諾がLGPLに準拠するものではなかった
画像

指摘を受けて、次の対応を行ったそうです。

  • 各国語対応のため、gettextパッケージをLGPL準拠バージョンである 0.10.40(当時)以降に差し替えたうえで、モジュールをリンクする形で利用するように修正
  • 自社が開発、権利を持つコードについて、独自ライセンスを作成してFree Standards Group(当時)に確認。明確にライセンスを設定
  • LGPL第6条に基づき、非公開コンポーネントのリバースエンジニアリングを許可するように、配布していたバイナリの使用許諾を修正
画像

振り返り

こうして、公開停止から約3ヵ月で公開再開にこぎつけられたとのことです。対応の速さと真摯な取り組みに、ネット上ではエプソンコーワ、GPL違反発覚も平素の対応に賛辞の声というような声もあがりました。

筆者も当時、このニュースを見て、同じような気持ちだったことを思い出しました。国内では事例もなく情報が少ない中で、これだけの短期間で真摯に取り組んだというのは、今見てみても大変なことだったと思います(なお、この件を知った学生がLinuxでの開発をしたいということで採用につながるなど、思わぬ効果もあったということです。これは素敵なことですね⁠⁠。

対応に関する考察として、宮田さんは「個人的な見解」としながら3つの「なぜ」という疑問に対しての回答をされました。

1.なぜLinux版のドライバを開発するに至ったのか?
Linuxの発展や提供の加速によりユーザの利点を考慮したということと、メーカーでは公式にサポートするまでの知識や体制が不足 ⁠ディストリビューションの種類が多いなど)していた
2.なぜすべてオープンソース化しないのか?
差別化のために高品位な入出力を提供する必要があったが、それを実現する部分(モジュール)が企業の知的財産と言える部分に抵触するため、完全なオープン化はできなかった
3.なぜすべてクローズドソース化しないのか?
WindowsやMacではOSのモジュールを利活用することが一般的だが、Linuxではその部分がOSのモジュールとしては提供されていない。OSSモジュールがそれに該当すると考えているため、すべてスクラッチでクローズドなソースをベースに作成はしない

そして、今回のことを踏まえて、今後出てくる同様のケースでの対応のポイントとして次の2つを挙げられました。

  • OSSを開発すること
  • OSSを利活用すること
画像

その中で、宮田さん自身が現在はクラウドベンダーに所属するという背景もあり、本題からは外れるが気になる話題で個人的な見解としたうえで、クラウドサービスの中でもOSSは非常に多く利用されているが、最近そのうちのいくつかの開発をしているベンダー(Redis、MongoDB、Kafka等)がクラウドベンダーからコミュニティに対する貢献が小さいといった不満から相次いでライセンスの変更を発表していることに触れ、⁠OSSの開発元は企業ユーザを考慮してくれているので何らかの貢献を考えたほうが良いのでは?」という提案をされていて、まさにその通りだなぁと思いました。

まとめ

最後に宮田さんはOSSの利活用とライセンスについて次のようにまとめて、セッションを締めくくりました。

  • OSSの利活用方法が配布する内容や利用するOSSのライセンスに沿っているか、事前に検討が必要
  • OSSライセンスに関することは、自分の判断だけではなく複数人でしつこいほど確認しても損はない(それが自分たちの知見にもなる)
  • 開発者寄りのライセンスの内容なので、法務に丸投げはできない。開発者と法務担当者で専門知識を持ち合って協議することがよい
  • LGPLの動的/静的リンクなど、ネット上の情報が正しいとは限らない。必ず元情報にあたって確認が必要
  • それでも、もしOSSライセンスに沿わないと指摘を受けた場合は「調査」「対応」を最優先する。ただし、調査と対応には「労力」「時間」が必要
  • OSSライセンスに沿わない利活用を考えている人はいない(はず)

ディスカッション

小笠原徳彦さん(左)と宮田晃佳さん(右)
小笠原徳彦さん(左)と宮田晃佳さん(右)

イベントの後半は小笠原さんをモデレータに講演者の宮田さんを交えてのディスカッションです参考資料⁠。小笠原さんは OpenPrinting Japan のメンバーで、宮田さんとはそのときからのご縁とのこと。 前回のMeetupと同様、最初に参加者の属性や興味などを挙手で確認から始まりました。また、アイスブレイクとして隣の人と話をする時間を設けて、発言(質問)しやすい雰囲気を作るなど場作りはとても良かったと思います。

ディスカッションで会場から出された質問と回答、会場での議論をいくつかピックアップしておきます。

Q:一番最初にリリースしたドライバはGPL違反したままなので、ソースを公開してほしいと言われなかったのか?
A:言われてはいない。指摘をされただけ。
Q:今回の話は古い話だけど、今のGPL v3とかAGPLになった場合の知見はあるか?
A:GPL v3の公開が予定されていることは認識していたので、v3のプレビューもしていた。
Q:改定後のライセンスに条件付きGPLになっている。これはGPLの総本山であるFSF的には嬉しくないはずだと思うが、FSFはそれを称賛していたのはなぜか?
A:厳格さを求めてドライバの公開を中止されるとLinuxがデスクトップとしての使い勝手が落ちることになるのをFSFが危惧していた。また、この件以外にも行ってきていたOSSへの貢献を評価してもらえた。
Q:Contributor License Agreement(CLA)をどうするか?
A:その内容は厳密な契約書を交わすようなものから、READMEに書くレベルのものまで、さまざま。法的拘束力を重視するとコントリビューションの敷居が上がるし、落とし所が難しいが、法務部門と協議してバランスをとるしかない。
Q:AGPLの伝播性:importしたときはサーバサイドのソースも含める?
A:(質問への直接の答えではないが)関連した話題として、JSのminifyやconcat時におけるGPLv3の扱いについて、GNUがJavaScriptの罠という文書を出している。日本語訳は古くなってしまっているので誰か翻訳をしてほしい。

参加者からの質問が非常に活発で、上記以外にも他にもたくさんの質問や意見が出されていました。OSSライセンスはみなさん気になっているけど聞いたり議論したりできる場があまりないということもあるのでしょうが、どの質疑も非常に考えさせられるものでした。

懇親会

この会の懇親会はソフトドリンクやスナック菓子を片手に参加者同士、あるいは発表者らとざっくばらんに語らう形で行われています。今回のMeetupの内容についてはもちろんのこと、日頃感じているOSSライセンスやその取り扱いについての疑問や問題点を、参加者と講演者が話をするという形式です。今回は多くの参加者が知っている事例についての内容だったこともあり、身近な話題として、多くの方々が熱心に話をされていました。

あとがき

今回は前回より時間が少し長くなっていたのですが、それでも本当にあっという間の2時間半でした。毎回のことですが、皆さんの熱気には本当に圧倒されました。

前回も思ったのですが、ライセンスについてはきちんと勉強しておかないと駄目だなと思いました。 技術者は法律の専門家ではないのでライセンス違反かどうかを判断することはできないのですが、少なくとも

  • 何をしてはいけないか
  • もし違反したときにどういう対応を考えなければいけないか

は認識しておく必要があると思います。

OSSを使ったシステム/アプリケーション開発は、今や当たり前になってきていますので、これは決して他人事ではありません。今回挙がった2002年ごろとは比べ物にならないほどソフトウェア開発はOSSに依存した形で行われており、きちんとした理解と使い方をしていないと、いつか自分がライセンス違反を問われる可能性もあります。

もちろん、不必要に怖がって「OSSを使わない!」なんて選択をしたほうが良いなんてことはありません。正しく知って正しく使う。これが大事だし、もっと言えばOSSを利用するのではなくOSSと共存するという考え方が大事なんじゃないかな、と思いました。

最後になりましたが、講演者、スタッフ、参加者の皆様、ありがとうございました!

おすすめ記事

記事・ニュース一覧