カラクリスタ

「輝かしい青春」なんて失かった人のブログ

個人的オープンソースライセンスの選び方

私は(誰かが得をするかもしれない)個人的なプロジェクトにFree/Libre Open Source Licenseをつける事が多いのですが(時折はサボる)、 その時にどういった基準でライセンスを選んでいるか、を書くと面白そうなので一度書き出してみます。

ライセンスを付ける時の基準

俺は作った。あとは好きにしろ。後のことは知らん

こう言うケースの場合、私は、

ISC License | Software Package Data Exchange (SPDX)

を使っています。

この場合、個人的に作ったソフトウェアかスクリプトで、使いたかったら好きに使ってください、 しかしその後の面倒は一切見ないので、何か要望や不満があればforkしていってね! と言う方針の時にこのライセンスを付けます。

そのためこのライセンスを付けたソフトウェアなどの場合、ほぼメンテナンスする気がありません。

俺は作った。あとは好きにしろ。ただし原作者である俺の名前だけは出せ

この場合だと、

MIT License | Software Package Data Exchange (SPDX)

を付けます。

この場合もほぼメンテナンスするつもりがないことが多いのですが、 必要があれば面倒は見るし、自分では一応使う(つもり)なモノだった場合、 このライセンスを付けることがよくあります。

俺は作った。あとは好きにしろ。ただし名前を勝手に使うな

この場合、

BSD 3-Clause "New" or "Revised" License | Software Package Data Exchange (SPDX)

を使うことが多いです。

3項BSDライセンスを使う場合、上記二つと条件はあまり変わらないのですが、 ある程度はメンテナンスするつもりがある、ただそんなに本気を出してメンテナンスをするつもりがないので、 勝手に名前を使わなければforkしてコミュニティでやっていってね!という意図で付けています。

そのため、自分が使うソフトウェアで、ある程度手入れしつつ使っていく場合、このライセンスを付けることが多いです。

色々と作ったけど、元々のコミュニティに従いますので、そのように

これは特にCPAN modulesや他のソフトウェアのforkなど、元々の文化・下地としてのライセンス選択があり、 その文脈に沿っていた方が扱いやすいだろう、という場合に元の文化圏で使われているライセンスを選ぶ傾向があります。

例えばCPAN modulesだとPerl本体と同じライセンスを付けることが多いですし、 またActivityPub周りのforkやdeployment kitなどについてはAGPL v3を使うことも多いです。

また合成フォントなどは、大本となるライセンスが、

SIL Open Font License 1.1 with Reserved Font Name | Software Package Data Exchange (SPDX)

である事が多そうな印象ですが、もし自分が一からフォントを作る場合、 このライセンスを使うだろうなー、という心持ちがありますね。

俺はこれをきちんと管理する。なので「しきたり」には従ってもらう

この場合に選ぶライセンスは、

GNU General Public License v3.0 or later | Software Package Data Exchange (SPDX)

か、

GNU Affero General Public License v3.0 or later | Software Package Data Exchange (SPDX)

です。

この時、伝播性のあるGPL系を使う目的は、GPLによって常にOSSである事を保証させ、 仮に開発者である私が死んだとしても、その開発の維持を可能にする、という意図があります。

またAGPLについては、主にWebアプリケーションのソースコードを提供する目的で選んでいて、 未加工でそのまま使うのなら良いけど、自社サービスなどの一部として改造して使うのなら、 差分はちゃんと置いてってね?という思惑です。

ただしこれらはあくまで「単独の(Web)アプリケーションソフトウェア」である時の選択であって、 「広く使われるライブラリ」として出すのであれば、これは先にも上げたMIT-Licenseか3項BSDライセンスを選ぶと思います。

これはOSSのライブラリとしてモノを出す場合、変にライセンスで強い制約を課すと、 使う側としても「緩くない」ライセンスは取り回しに注意を要する、ということもあって、 「ライブラリ」に関してはあまり厳格なライセンスを選ぼうとは思っていません。

とは言え「緩い」ライセンスは企業が絡むライセンスとして扱いづらそうな予感もあるので、 そう言った場合には、

Apache License 2.0 | Software Package Data Exchange (SPDX)

などを使った方が良いのかなーなんて思ってます。

これは私の作品である。この作品の扱いは私が決める

この場合、対象がなんであれ、

Creative Commons

を使います。

ただしCreative Commonsは掛けたい制約によってライセンスを調整する必要があるので、 その点については個々の事例による、と言わざるを得ません。

またCreative Commonsをプログラムのソースコードに掛けると、 却ってライセンスの扱いで不自由が発生するため、ソースコードに対してはそれらに用いるライセンスを基準に選択し、 そうでないものについてはCreative Commonsを使うかなーという感じですね。

以上

私の場合、

俺はこれを作った。勝手に使っていけ。あとは知らん

という感じでソフトウェアやライブラリを公開することが多いので、 現実としてはISCかMIT、3項BSDを選択することがほとんどなのですが、 仮にしっかりとしたソフトウェアを公開して作るのであれば、GPL系を選ぶかなーと考えています。

また私がOSSでモノを出すときは、主に自分が作ったものを広く使ってもらいたい、と言うよりも、 自分がくたばった(死んだ)場合に自分の製作物まで巻き込みたくない、という思いであるので、 そう言った文脈でライセンスを選ぶことが多いです。

その他、今日の話はあくまで「そう言った傾向がある」というだけの話ですし、 その時々によってライセンスの選択は変えていくと思うので、

今のところはこうだよー

という方針なのでした。

余談というか蛇足

GPL系のライセンスを語るとき、日本語でよく「感染」って言われがちですが、 あれってライセンスの「伝播」と言った方が良くない?と思ってます。

GPL系のライセンスの根本にある思想って「Copyleft」な訳ですが、 こう言った意味でも思想を「伝播」させるためのGPLなんじゃないかなーと勝手に思ってます。

以上、蛇足でした。