第13回 プロジェクトの障害:まつもとゆきひろのハッカーズライフ(2/2 ページ)
オープンソースプロジェクトを開始するとして、そのソフトウェアに設定するライセンスとして何を選んだらよいでしょうか。今回はライセンスというものについて考えてみましょう。
オープンソースライセンスの選び方
あなたがオープンソースプロジェクトを開始するとして、将来問題が起きない(起きにくい)ライセンスを選ぶにはどうしたら良いでしょうか。
世の中にはたくさんのオープンソースライセンス*が存在します。すでに多すぎるほどです。この中から選び出すだけで十分でしょう。それもメジャーなものを選択することをお勧めします。だいたいライセンス変更のようなトラブルが起きるのは、マイナーなライセンスを選んだプロジェクトと相場が決まっています。メジャーなものは広く使われているので、大きな問題が残っていないと考えられますし、いざというときに仲間が多いのも安心です。マイナーなライセンスでは、ほかのライセンスとの組み合わせなど十分な検討が行われていないことが多く、不安が残ります。
ソフトウェアのライセンスを選ぶに当たって、まず考えなければならないのは「コピーレフトを望むかどうか」でしょう。コピーレフトとは、簡単に言うと「あなたの書いたフリーなソフトウェアに対して、自由を擁護しないものがタダ乗りすることを許さない」というものです。FSFはソフトウェアの自由の擁護者として、コピーレフトを強く推進しています。一方、コピーレフトについてそれほど気にしていない開発者も多いようです。あなたがコピーレフトを望むのであれば選択肢はほぼGPLしかありませんし、ライブラリとして使われるものであればLGPLも候補に挙がります。ライブラリにGPLを適用すると、事実上GPLソフトウェアからしか使えないので、より制限の緩いLGPLの方が広く使われる可能性があります。しかし、LGPLはあまり使い勝手が良くない上に、「分かりにくい」、「十分な考察が進んでいない」などの欠点がありますので、コピーレフトを強く望まない場合にはお勧めできません。
コピーレフトにそれほどを強いこだわりのない人には、GPL以外の選択肢もあります。ここで重要なのは、「そのソフトウェアは、別のソフトウェアとのリンクが必要かどうか」です。将来、何らかの形でGPLソフトウェアとのリンクが予想される場合には、GPLとの互換性*が重要になります。プラグイン機能を持つソフトウェアやライブラリは、この点に注意しなくてはなりません。GPLと矛盾しないライセンスとしては、修正BSDライセンスやX11ライセンスなどがあります。
もう1つの検討すべき要素は、関連ソフトウェアとライセンスをそろえることでしょう。例えば、EclipseプラグインなどはCPL(Common Public License)を選択すべきでしょう。また、PHP関連のソフトウェアは、PHPとライセンスをそろえた方が無難です。Rubyで書かれたソフトウェアは、Ruby自身とはライセンス的に独立なのですが、それでもRubyライセンスを選ぶ人が多いようです。避けたいライセンストラブル
すでに述べたように、ライセンスのトラブルは「面倒くさい」、「面白くない」などイヤなものです。しかも、悪いことに法的な問題は「問題があるのかないのかはっきりしない」というオマケ付きです。「はっきりしたことは裁判してみないとね」といわれても、被告になんかなりたくないし……。
訴訟リスクをゼロにすることは不可能みたいですが、それでも面倒な問題を回避するためにも、ライセンスについては賢くつきあいたいものです。そして、われわれの本来の「仕事」であるプログラミングに集中しましょう。Happy Hacking。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
このページで出てきた専門用語
たくさんのオープンソースライセンス
「オープンソースの定義」を満たすとしてOpen Source Initiativeが認定したライセンスは、60種類近くに上る。認定されていないが定義を満たすであろうライセンス(Rubyライセンスもその1つ)を含めると、いったい幾つになることやら。
GPLとの互換性
「さまざまなライセンスとそれらについての解説」には、GPLとほかのライセンスの組み合わせという観点からさまざまなフリーソフトウェアライセンスについて述べられている。ライセンスのことを知ろうと思ったら、まずここを読んでほしい。
関連記事
- まつもとゆきひろのハッカーズライフ:第1回 ハッカーとの遭遇
- まつもとゆきひろのハッカーズライフ:第2回 キーボードへのこだわり
- まつもとゆきひろのハッカーズライフ:第3回 ハッカーと仕事
- まつもとゆきひろのハッカーズライフ:第4回 Emacs対vi
- まつもとゆきひろのハッカーズライフ:第5回 ハッカー環境問題
- まつもとゆきひろのハッカーズライフ:第6回 言語の重要性
- まつもとゆきひろのハッカーズライフ:第7回 言語の重要性その2
- まつもとゆきひろのハッカーズライフ:第8回 ハッカーとオープンソース
- まつもとゆきひろのハッカーズライフ:第9回 測定狂時代
- まつもとゆきひろのハッカーズライフ:第10回 ソースを読もう
- まつもとゆきひろのハッカーズライフ:第11回 Let's Talk Lisp
- まつもとゆきひろのハッカーズライフ:第12回 スケーラビリティ
- まつもとゆきひろ――第1回:オープンソースという「お仕事」
オープンソースソフトウェアの開発にかかわっている人のインタビューをシリーズでお届けする「Open Source People」。記念すべき第1回はMatzのニックネームでも知られるまつもとゆきひろ氏の「人となり」に迫る。 - まつもとゆきひろ――第2回:Rubyを開発するということ
周囲がまつもと氏のまれたぐいまれなプログラミング言語アーキテクトとしての才能に気づき、まつもとがそれに専念できるような体制が自然に形作られつつある――Rubyはいま、そういう状況にあるように見える。今回は、Rubyの開発におけるまつもと氏の考えに迫る。 - まつもとゆきひろ――第3回:僕の存在価値はそこにある
過去2回にわたってお届けしてきたまつもとゆきひろ氏へのインタビューは今回が最終回となる。「誰かがRubyを実装し直したとしたら、いまのRubyよりもずっとエレガントで速いものができるはず」と語るまつもと氏は自身の存在価値をどのように見ているのかに迫る。
Copyright © ITmedia, Inc. All Rights Reserved.