レポート

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

この記事を読むのに必要な時間:およそ 3 分

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ライセンスに沿わない利活用を考えている人はいない(はず)

著者プロフィール

Kunihisa Abukawa

今は無所属のソフトエンジニア。さまざまな勉強会の情報発信を通じて,今とは違う世界もあるということをすべてのエンジニアに届けたいと活動中。

Twitter:@kabukawa