Above & Beyond

日々のアウトプット記録

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

02/21(木) は「OSSライセンスMeetup Vol.2 「実録:GPL違反とその対応を振り返る」」に参加してきました。

sios.connpass.com

f:id:kabukawa:20190217171758p:plain:w300

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

f:id:kabukawa:20190221182539j:plain


目次


OSSライセンスMeetup について

1回目に参加した記事がありますので、そちらを参照してください。

kabukawa.hatenablog.jp

また、技術評論社さんのサイトでも参加レポートが公開されていますので、そちらも合わせてどうぞ。

gihyo.jp


タイムテーブル

時間 内容
18:30~19:00 開場
19:00~19:10 スタッフによる前口上・注意事項案内
19:15~19:45 宮田さん「実録:GPL違反とその対応」
19:45~20:45 ディスカッション (モデレータ:小笠原さん)
20:45~21:00 座席撤収→懇親用準備
21:00~22:00 歓談
22:00~22:15 会場撤収

内容

いまだに国内の事例として紹介されるGPL違反に関して、状況や経緯、解決策、対応後の反響などについて振り返ります。 これまでは、客観的に違反とその対応に関して事例を説明することは多くありましたが、実際に起こった現場の声を反映した 事例の説明は数少なく、今だから言えることなど、知見を共有いたします。

  • 実際に起こったこと
  • 対策(技術面・ライセンス面)
  • 対応後の反応

OSSを積極的に活用し配布されている組み込み系の方やOSSの開発に携わっている方に限らず、Web系などOSSを利用しサービスを提供している方にも何かを持ち帰っていただけるのではないでしょうか?


実録:GPL違反とその対応

宮田さん

f:id:kabukawa:20190222234617p:plain:w500

drive.google.com

個人メモ:

日本OSS推進フォーラムのページでGPL違反と対策事例として公開されている件についてのお話。

ossforum.jp

f:id:kabukawa:20190222112640j:plain:w500

聞いた内容と写真を元に書き起こしたものですので認識や記述が誤っていたりする可能性があります。 法律の専門家ではないため、解釈については個人的なものとしてご認識ください。 その点はご了承願います。


【ことの発端】

2002年(平成14年)、従来のLinux環境では不可能な高品位を実現した

  • プリンタドライバ
  • スキャナドライバ

を公開。これらに対して、オープンソースライセンスに従っていない利用・配布方法であることを 指摘 された。


【発覚経緯】

  • とあるユーザーが、配布中ソフトウェアを解析
  • GPLの条件と異なっていることを指摘

【原因詳細】

  1. 各国語対応のため、gettextパッケージのソースコードの一部(libintl)を利用
    • 本パッケージがGPLにもかかわらず取り込み
    • GPLソースコードと二次配布
    • 非公開のバイナリと二次配布
    • 個々のファイルのライセンスを明確にしないまま二次配布
  2. ソースコードを非公開とするライブラリ内で利用
    • LGPLライブラリ(glibc)とリンク
    • 使用許諾がLGPLに準拠するものではなかった

【指摘を受けての対応】

  1. 各国語対応のため、gettextパッケージのソースコードの一部(libintl)を利用
    • 自社のライセンスが適用されるものに対して、明確にライセンスを設定
    • gettextパッケージをLGPL準拠バージョンである 0.10.40 (当時)以降に差し替え
    • 独自ライセンスを作成し Free Standards Group (当時) に確認
  2. ソースコードを非公開とするライブラリ内で利用

【ドライバ】

修正前

f:id:kabukawa:20190222234648p:plain:w500

修正後

f:id:kabukawa:20190222234702p:plain:w500

【修正後ライセンス(抜粋)】

f:id:kabukawa:20190222234716p:plain:w500

f:id:kabukawa:20190222234732p:plain:w500


そもそもなぜ開発したか?

  • Linuxの発展や提供の加速により、ユーザーの利点を考慮
  • メーカーでは公式にサポートするまでの知識や体制が不足 (ディストリビューションの種類が多いなど)

なぜすべてOpen化しないのか?

  • 高品位を実現する部分が企業の知的財産と言える部分に抵触
  • しかし、差別化を含め、高品位を実現する必要があった

なぜすべてClose化しないのか?

  • WindowsMacではOSのモジュールを利活用することが一般的
  • Linuxに照らし合わせるとOSSモジュールがそれに該当する

対応のポイント

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

【ネットなどでは賛辞の声も】

srad.jp

【採用】

このことがきっかけで会社に興味を持って、Linux開発に関わりたいと入社した社員もいたとのこと。


  1. OSSを開発すること

    • 知的財産に抵触しなければ
    • すべてスクラッチで開発すれば
    • → どのOSSライセンスでも何も問題はない
  2. OSSを利活用すること

    • 利用するOSSのライセンスによって
    • OSSを利用する方法によって
    • OSSを利用する自身のモジュールによって
    • → どういった対応が必要か?
    • → 独自に開発する部分の秘匿性は有るのか?
    • → ライセンスをどうずるか?

1はそれほど悩むことは無いが2は非常に悩ましい。

Free License Non Free License
機密情報 Open(Public) OK OK
機密情報 Close(Private) NG OK

OSSの開発元がクラウドベンダーへの不満を表明(Redis、MongoDB、Kafka等)

www.itmedia.co.jp

クラウドベンダーからコミュニティーに対する貢献が小さいといった不満

The revenue generated by a service can be a great source of funding for open source projects, far greater than what has historically been available. The reality, however, is that once an open source project becomes interesting, it is too easy for large cloud vendors to capture most of the value while contributing little or nothing back to the community. As a result, smaller companies are understandably unwilling to wager their existence against the strategic interests of the large cloud vendors, and most new software is being written as closed source.

企業ユーザーを考慮してくれているので何らかの貢献を考えたほうが良いのでは?


最後に

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

ディスカッション

モデレータ:小笠原さん

f:id:kabukawa:20190222115112j:plain:w500

質疑はたぶん拾えてないものが結構あると思います。 拾ったものでも、質問や回答の意図を外して読み違えている可能性もありますので、 「こんな感じの話をしていたのか」 ということで生温かい目で読んでいただければ幸いです。


  • 一番最初にリリースしたドライバはGPL違反したままなので、ソースを公開してほしいと言われなかったのか?
    • 言われてはいない。指摘をされただけ。

  • 今回の話は古い話だけど、今のGPL v3とかAGPLになった場合の知見はあるか?
    • 当時もv3のプレビューもしていた。

  • 改定後のライセンスに条件付きGPLになっているけどFSFはそれを称賛していたのはなぜか?
    • デスクトップとしての使い勝手が落ちる
    • OSSへの貢献を評価してもらえた

f:id:kabukawa:20190222120127j:plain:w500

  • コンパイル言語ではない場合はどういう認識でいればいいのか?いわゆるフロントエンド界隈での話は?
    • FSFの公式サイトにJavascriptの罠という有名なドキュメントが有る
    • ただし、日本語訳は古いままなので、原文を読む必要がある(翻訳してくれる人がいるといいな)
    • 横のつながりでできるだけ多くの人で確認する
    • 英語の翻訳のレビュー

f:id:kabukawa:20190222115856j:plain:w500

  • ライセンスの変更時

    • LibraOffice
    • LGPL→MPLへの変更をしている。その際に全員の同意をとった
  • MySQLOracleに変わってもそのまま

  • MPL1.0から2.0にへの変更
  • GFDLライセンスのものが知らないうちに紛れ込んでいた

    • GFDLは複数のライセンスを混ぜてもOKなので、傷を浅くして受け入れる
  • OpenStreetMap

    • コピペした場合に削除
    • ライセンス変更時に同意を取れなくなったものを削除
    • 日本の海岸線が消えたことがある
  • 入れてしまった場合は仕方ないので真摯に対応する

    • だめなものはrevertする
  • 特許違反で訴えられる場合GitHub等では履歴で過去のものが残っているがこれは問題にならないのか?

    • 履歴があったほうが証明しやすい面もあるのではないか
    • OSSのライセンスでは構成管理が色々キーになってくるのでは?

f:id:kabukawa:20190222120205j:plain:w500

  • Linux対応で何か起きてしまった時にどうするか
    • チームを分ける
    • ライセンスをきちんと読んでいく

懇親会

懇親会では皆さん思い思いに周りの方と、カンパて提供された飲み物とお菓子を片手にライセンスについて語り合っていました。 会場撤収になる22時になっても、20人位の方が熱心に話をされていたのが印象的でした。 (自分もいたのですが)


まとめ

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

  • 何をやっちゃいけないか
  • もし違反した時にどういう対応を考えなければいけないか

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

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

もちろん、不必要に怖がってOSSを使わない、なんて選択をしたほうが良いなんてことはありません。

正しく知って正しく使う。

これが大事だし、もっと言えば

OSSを利用するのではなくOSSと共存する

という考え方が大事なんじゃないかな、と思いました。 参加できて今回もとても勉強になりました。

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