ページの本文へ

Hitachi

日立ソリューションズ ソフトウェア部品管理ソリューション

OSS管理ブログ

コピーレフトライセンスとは

コピーレフトライセンスとは

この内容は、FOSSA社のブログ記事を元に日本語に翻訳・再構成した内容となっております。

コピーレフトライセンスとは

現在使用されているOSS(オープンソースソフトウェア)のライセンスには、一般的なもの(例:GPLv2)から、コミカルなもの(例:Beerware License)まで、何百種類ものライセンスが存在します。

しかし大まかには、OSSライセンスは「寛容(permissive)」なライセンスと、「コピーレフト(copyleft)」のライセンスという、大きく2種類のライセンスが存在します。

この記事の主題であるコピーレフトライセンスは、一般的に、許諾されたソフトウェアの派生作品がオリジナルのソフトウェアと同じライセンスでリリースされることを要求します。言い換えれば、変更されたコードはオリジナルとまったく同じように「オープン」でなければなりません。この条件によって、OSSのユーザーはコピーレフトライセンスのコンポーネントを含むバイナリをリリースする場合、自らの変更や追加をソースコード形式で公開しなければならなくなる場合があります。

コピーレフトライセンスは、ライセンスされたコードの使用に関する制限がほとんどない傾向にある寛容(permissive)なライセンスとは対照的です。それらはコード公開の条件もありませんので、「オープンソースらしさ」が必ずしも派生作品にまで及ぶわけではありません。これらのライセンスは、立場によって見え方が異なります。商用ソフトウェアの開発者にとっては、コピーレフトライセンスのソフトウェアは慎重な扱いが要求されるものですが、フリーでオープンなソフトウェアの開発者にとっては、コピーレフトはそのソフトウェアが自由に利用可能であり続けることを保証してくれる手段となります。

この記事では、コピーレフトライセンスに関する歴史、寛容なライセンスとの比較、強いコピーレフトライセンスと弱いコピーレフトライセンスの違いなどを詳しく説明していきます。

コピーレフトライセンスの歴史

「コピーレフト」という言葉は、馴染みのある「著作権(コピーライト)」という言葉に真っ向から対立するものとして生まれました。1976年、開発者のLi-Chen Wang博士は、彼のプログラミング言語Palo Alto Tiny BASICの配布通知に、”COPYLEFT ALL WRONGS RESERVED.” というユーモラスな文言を加えました。これは、マイクロソフト社の共同創業者であるビル・ゲイツ氏(当時同社のAltair BASICプログラムの海賊版が150ドルで販売されていることに苦言を呈していた)を揶揄したものとされています。

この文言に法的な効力はありませんでしたが、世間にキャッチーな印象を与えました。また、この文言は、フリー(使用、複製、変更などが自由)であるソフトウェア(Tiny BASIC)と、プロプライエタリ・著作権保護されたソフトウェア(Microsoft社のAltair BASIC)とを対比させるものでした。

1980年代になって、有名なフリーソフトウェアの提唱者であるリチャード・ストールマンが、この言葉をGNUプロジェクトの中心的存在にしたことで、コピーレフトはさらに注目される存在になりました。ストールマンは、真に自由なソフトウェアプログラムとは次のようなことを可能にするものだとしています。

  1. プログラムを好きなように実行する自由
  2. プログラムをコピーして、友人や同僚に配布する自由
  3. ソースコードに完全にアクセスして、プログラムを好きなように変更する自由
  4. 改良されたバージョンを配布して、コミュニティの構築に貢献する自由

ストールマンは、上記の自由、そしてコピーレフトの概念を念頭に置いて、GNUオペレーティングシステムを構築しました。GNU.orgの “コピーレフトって何? “のページでは、ソフトウェアに関するコピーレフトを次のように説明しています。

プログラムにコピーレフトを適用するには、わたしたちは、まずそれに著作権を主張し、そのうえで配布条項を加えます。それは、配布条項が変更されない限り、プログラムのコード、もしくはそれから派生したプログラムに対して、使用、改変、および再配布をする権利をすべての人に与えるという法律手段です。これによって、コードと自由は法律上、分離できないものになります。
プロプライエタリなソフトウェア開発者たちは、利用者の自由を奪うために著作権を使います。わたしたちは、利用者の自由を保証するために著作権を使います。これが、名前を逆に、つまり、著作権(「コピーライト」)を「コピーレフト」に変えた理由です。(GNU.org, “コピーレフトって何?”)

オリジナルのGNU一般公衆ライセンス(GNU GPL)は、ストールマンが1989年にGNUオペレーティングシステムとその関連プログラムに対して書いたもので、コピーレフトの概念を明示的な形にしたものです。それ以来、GNU GPLは何度も更新されおり、最新版であるGNU GPL v3は2007年にリリースされました。またMozilla Public License 2.0やEclipse Public Licenseといった他のコピーレフトライセンスもOSSコミュニティで人気を博しています。なお現在オープンソースソフトウェアで最も使われているコピーレフトライセンスはGNU GPL v2で、20年間にわたって広く使われています。

コピーレフト(copyleft)ライセンスおよび寛容(permissive)なライセンス

コピーレフトライセンスと寛容なライセンスの主な違いは、コンプライアンスの要件と、コードの改変がどの程度「オープン」でなければならないかという点です。一般的に、寛容なライセンスは、ライセンスされたコードを再配布する際に、ライセンステキストのコピーとオリジナルの著作権表示を含めることだけをユーザーに要求します。それ以外の場合は、ユーザーはそのコードを好きなように使うことができます。例えば開発者は、コードを入手し、それを変更して新しいプログラムを作成し、そのプログラムのコードをプロプライエタリでクローズドなソースにすることができます。そして、そのプログラムは商業的に販売することができます。

一方、コピーレフトライセンスにはより厳しい条件が設けられています。寛容なライセンスと同様に、一般的にはオリジナルの著作権表示とライセンステキストを含めることが求められますが、それに加えて、オリジナルと同じライセンスの下で、改変や派生作品のソースコードをバイナリのすべての受領者に提供することが義務付けられています。

コピーレフトライセンスの使用例

あるソフトウェアにとっての最適なライセンスは考え方によって変わります。ライセンスの選択に際して、まずそのソフトウェアで何を達成したいのか、そして他の人があなたのコードとどのようにやりとりしたいのかを検討する必要があります。

例えば以下のような場合、コピーレフトのライセンスがそのソフトウェアプロジェクトに適しているかもしれません。

  • OSSコミュニティと改善を共有したい
  • ソフトウェアを構築するための協調的なアプローチを信じている
  • プロジェクトを商業化したい
  • コードを誰かにプロプライエタリにされたくない
  • 特定のコピーレフトライセンスを使用する傾向のあるコミュニティでプロジェクトを作成している

一方で、以下のような場合には、寛容なライセンスが最良の選択となるでしょう。

  • ライセンスの遵守に多くの時間(または心配)を費やしたくない
  • 他の人がコードを使うのをできるだけ簡単に、魅力的にしたい
  • 特定の寛容なライセンスを使用する傾向にあるコミュニティでプロジェクトを作成している

幸いなことに、プロジェクトに適したライセンスを選ぶのに役立つリソースは世の中にたくさんあります(例えば、このガイド)。また、OSSコミュニティの他のメンバーに聞いてみるのもいいでしょう。

コピーレフトライセンスの種類

コピーレフトには、強いコピーレフトと弱いコピーレフトの2種類が存在します。この違いは、どれだけの新規コードや隣接コードがコピーレフトライセンスの対象となるかによります。

GPLのような強いコピーレフトライセンスでは、他の人が書いたGPLコードを含むプログラムを再配布する場合、あなたのプログラム全体をGPLで利用可能にしなければなりません。これには、リンクされたライブラリやプログラムの他のコンポーネントも含まれます。このカテゴリーに入るライセンスの例としては、GPL v2、GPL v3、Affero GPLが含まれます。

弱いコピーレフトライセンスもまた、ユーザーが変更を公開することを義務付けていますが、この要求はコードのより狭い範囲に適用されます。Mozilla Public License 2.0は、この原則を示す弱いコピーレフトのライセンスの例です。もしユーザーがMPLでライセンスされたコードを別々のファイルにしておけば、それを追加や変更のコードと組み合わせて、一つの集合的な作品を作ることができるのです。新たに追加されたファイルは、別のライセンスで公開したり、プロプライエタリ(クローズドソース)にしたりすることができます。これは、ファイルベースのコピーレフトと呼ばれることもあります。もうひとつの例は、GNU Lesser General Public Licenseで、これは主にライブラリに適用されます。ライブラリに変更を加える場合は、同じライセンスで公開しなければなりませんが、単にライブラリを使用するだけの作品であればその必要はありません。

LGPLはまた、ライブラリがプログラムの残りの部分とどのように統合されているかによって、条件が異なります。例えば、LGPLはライブラリを動的にリンクすることを要求していると聞いたことがあるかもしれません。静的にリンクされたプログラムでもLGPLに準拠することは可能ですが、より多くの条件があるため、LGPLコードの動的リンクはベストプラクティスです。

コピーレフトライセンスは、オープンソースソフトウェアの世界だけで存在しているわけではないことにも注意してください。例えば、クリエイティブコモンズ(CC)ライセンスは、写真や音楽などの芸術作品によく適用されるコピーレフトライセンスです。

OSSコミュニティにおけるコピーレフトライセンス

現在、オープンソースソフトウェアではMITライセンスやApache License 2.0などの寛容なライセンスが最も多く使用されています(ソースによって異なる数字が報告されていますが、一般的にはOSSプロジェクトの65~75%程度で寛容なライセンスが使われていると推定されています)。

一方で、コピーレフトライセンスもOSSのエコシステムには欠かせない役割を果たしています。例えば、GPLファミリーはOSSライセンスの中で最もよく使用されるライセンスの一つであり、Linuxカーネルに適用されたライセンスとしてソフトウェア開発のエコシステムの中で特別な位置を占めています。

またコピーレフトライセンスは、企業と開発者の双方が改良点を共有してOSSコミュニティに還元する「フリー」ソフトウェアの目的を促進します。OSS貢献者がこのような考え方を大切にし続ける限り、コピーレフトライセンスは今後も存在し続けるでしょう。

オープンソース管理ソリューション
タグ一覧
新着記事