以前、自分が公開していたコードは GPLv3 と LGPLv3 のデュアルライセンス、つまり GPLv3 or LGPLv3 dual license という形を採用していた。
ライセンスについてあまり馴染みのない方のために簡単に補足しておくと、 GPL (GNU General Public License) は、ソフトウェアの自由な利用・改変・再配布を保証するライセンスであり、その自由を守るために派生物にも同じライセンスを課す「コピーレフト」と呼ばれる性質を持っている。
一方で LGPL (Lesser GPL) は、その派生物への制約が緩和されたバージョンで、主にライブラリ向けに設計されており、プロプライエタリ(非オープンソース)なソフトウェアとの連携も許容している。
だが、いつの頃からか LGPLv3 単体での公開に切り替えていた。
理由は単純で、どうせ使う側は制約の緩い LGPLv3 のほうを選ぶのだろうと思っていたからだ。
わざわざ GPLv3 の選択肢を用意しても、現実には意味がないのではないかと感じていた。デュアルライセンスという構成自体が、やや過剰なものにも思えた。
だが最近になって、この判断は本当に妥当だったのかという疑問がふと湧いた。
というのも、元々自分はフリーソフトウェアのあるべき姿について、リチャード・ストールマンの思想に強く共感しており、自由を最大限に保証するという点で GPL を選ぶべきだと考えていた。
ただ実際には、GPL ライセンスにはいくつかの実用上の課題もある。
例を挙げると次の通りだ。
・商用ソフトウェアと組み合わせて使いづらい
・スマートフォンアプリなどへの組み込みでライセンス上の制約がネックになる
・サードパーティにソースコードの開示を求める必要があるため、社内利用やクローズド環境で敬遠されることがある
こうした現実的な制約に対応するために、より柔軟な LGPL を併記することで、「理想」と「現実」を両立しようと考えていたのだった。
ところが気づけば、いつの間にか LGPL 単体で公開するようになっていた。
リポジトリのコードを整理している最中、その事実に改めて気づいたとき、自分が当初なぜデュアルライセンスにしたのか、その原点を忘れかけていたことに気づかされた。
そこで、話題の ChatGPT に GPLv3 or LGPLv3 dual license にする意味はあるのかと尋ねてみたところ、筋の通った回答が返ってきた。
要点は以下の通りである。
・ GPLv3 コードとのライセンス互換性を確保できる
・ LGPLv3 による柔軟な利用を許容できる
・「自由の保証」と「現実的な採用促進」の両立が可能である
要するに、利用者に選択の自由を与えること自体に意味がある、ということだ。
これは単に「緩いライセンスを選べる」という話ではなく、開発者と利用者のどちらにとっても納得のいく形でライセンスを運用できるという点に価値がある。
言われてみればもっともで、なぜ以前はそうしていたのかを思い出すような感覚でもあった。
というわけで、公開している GitHub リポジトリにある成果物は再び GPLv3 or LGPLv3 dual license に戻すことにした。
あわせて、ブログやウェブサイト上のライセンス表記もこの形に統一した。
ライセンスは形式的なもののようでいて、そこには思想が宿る。
選択肢を与えること、そしてそれを明示することが、オープンソースソフトウェアに関わる者としてのひとつの姿勢であると感じている。