日頃、みなさんはライブラリやソフトウェアのライセンスを気にしていますか。

私は、いろいろなライセンスがあることは知っていたのですが、
実際にトラブってるのを最近はじめて見かけました。

mimemagicというruby gemがあります。
どうやらこれまでGPLライセンスだったようで依存していたgemで少々問題になりました。

例えば
rails - いわずと知れたフルスタックフレームワーク
caxlsx - excelファイルを出力できるライブラリ の内部では、mimemagicを使っています。

問題は2つありました。

  1. GPLのプログラムを利用して開発したプログラムはGPLライセンスとなり、ソースコードをオープンにしなければならない。
  2. mimemagicのリポジトリが突然アーカイブされ、GPLライセンスの最新バージョンだけ残し以前のバージョンは全て削除されてしまった。

これにより、いままで非公開(商用)で開発されていたプログラムにすべて波及し、プログラムの開示が必須となってしまいます。特にノウハウの詰まっている商用ソフトウェアはすごく困っちゃいますよね。

また、突然のアーカイブにより、CIがずっこけてバージョンアップデートも必要になりました。 事実上の、強制GPL化です。 mimemagicに依存する部分を修正するというのは非常に膨大なコストがかかることが容易にわかります。私には絶望しかなかったです。

mimemagicに直接依存していたライブラリのgithubでは議論がなされていました。

https://github.com/caxlsx/caxlsx/issues/92 https://github.com/rails/rails/issues/41750

現在は、mimemagicの中からGPL依存していた部分を取り外しMITライセンスとして再公開されています。しかし、GPL依存部分が処理の核となる部分のため、根本的な解決にはいたっていないのが現状のようです。

短期的には代替gemを利用し、長期的には新たなgemを作って対応する。というのがmimemagicに依存していたメジャーなライブラリの方針のようです。

常日頃、感謝して使わせていただいているオープンソースですが、ひょんなところで絶望を味わうことになりますね。

注意深く、どういったライブラリ・ミドルウェアの上で成り立っているのか確認し、使わせていただきましょう!。

Copyright 2020 shimu.dev