LはOSSを健全に保つルールブック | OSSのABC
やあ、オタク諸君!『O-S-SのABC』へようこそ。ここではオープンソースソフトウェアの世界を、一文字ずつ分解して解説していく。僕はテイラー。今日はL、つまりライセンスについて掘り下げていくよ。そう、法律関連の話は確かにワクワクする内容じゃないけど、信じてくれ、これは知っておくべき重要なことなんだ!
オープンソースライセンスについて重要な点は、これらが史上最大のソフトウェア共有パーティーのルールブックのようなものだということです。これらがなければ、完全な混乱状態になるでしょう。例えば、車を誰かに貸す際に、その人が車をホットピンクに塗り替えたり、エンジンを交換したり、デモリションダービーに使ったりしても良いかというルールが一切ない状況を想像してみてください。ライセンスのないソフトウェアは、まさにそんな状態になるのです!
これらのライセンスを大きく2種類に分けましょう。まず、寛容なライセンスがあります。これらは気楽なタイプです。MITライセンスやApacheライセンスは、まるで「ああ、好きなように使えばいいよ。ただ、どこから持ってきたか忘れないでね」と言うクールな友達のようなものです。商用製品でコードを使いたい?どうぞご自由に。 修正したい?どうぞご自由に。著作権表示さえそのまま残しておいてくれれば、それで問題ない。
次にコピーレフトライセンスがある。これはNetflixのパスワードを共有する友達みたいなものだが、厳しい条件が付いている。GNU一般公衆利用許諾契約書(GPL)が代表格だ。その基本方針は「コードを使っても構わないが、変更して共有する場合はオープンソースを維持せよ」というもの。ソフトウェア共有のマルチ商法みたいなものだが、良い意味でね!
さて、ライセンスを選ぶのはNetflixで何を見るか選ぶのとは違う——目を閉じてランダムにクリックするわけにはいかない。コードを大企業のプロジェクトを含むあらゆる場所で使ってもらいたいなら、MITライセンスのような寛容なものを選ぶべきだ。しかし、オープンソースの夢を生き続けさせ、コードが永遠に自由でオープンな状態を保つことに全力を注ぐなら、GPLがぴったりかもしれない。
ただし、ここで厄介な問題が発生します——すべてのライセンスが互いに調和するわけではないのです。まるで異なるボードゲームのルールを混ぜ合わせようとするようなもので、時にはうまくいくこともありますが、時には混乱を招く結果になります。GPLコードを他のライセンスと組み合わせるのは、目隠しをしてルービックキューブを解こうとするようなものです——技術的には可能ですが、わざわざそんな苦労をする必要があるでしょうか?
さっそく誤解を解いておこう。オープンソースだからといって何でも自由に使っていいわけじゃない。最も寛容なライセンスにも基本ルールは存在する。自分のコードにライセンスなんて必要ないと思う?それは登録なしで車を路上に放置するようなものだ——技術的には存在するが、誰も触りたがらないだろう。
ライセンスの本当に素晴らしい点は、オープンソース運動全体を形作ってきたことです。弁護士が頻繁に介入することなく、互いの成果を基盤に構築できるのはライセンスのおかげです。企業がオープンソースコードを恐れることなく利用でき、開発者が自身の成果が誤用されないことを確信して共有できるのも、ライセンスがあるからです。
これがOSSのABCシリーズ第12弾です!次回はM、つまりメンテナーについてお話しします。オープンソース界の真のMVPである彼らこそが、プロジェクトを継続させ、バグを潰し続けているのです。それまで、ライセンスを明確に、著作権表示をきちんと維持しておいてくださいね!じゃあね!