DUICUO

オープンソース愛好家必読!オープンソースライセンスの基礎入門。

開発者として、コードをオープンソース化する予定がある場合は、必ずオープンソース ライセンスを選択してください。

多くの開発者はオープンソースライセンスについてあまり知らず、どのようなライセンスがあるのか​​、どのように選択すればよいのかわからないことがあります。この記事では、主にOpenSource.com (1, 2) を参考に、オープンソースライセンスの基礎を紹介します。

[[208281]]

I. オープンソースライセンスとは何ですか?

オープンソースライセンスは法的許可証です。これにより、著作権者はユーザーが著作権で保護されたソフトウェアを無償で使用、改変、共有することを明示的に許可します。

著作権法は、デフォルトで共有を禁止しています。つまり、ライセンスのないソフトウェアは著作権を保持するのと同等です。たとえオープンソースであっても、ユーザーはソースコードを閲覧することはできますが、使用することはできません。使用すれば著作権を侵害することになります。したがって、オープンソースソフトウェアは、ユーザーに明示的にオープンソースライセンスを付与する必要があります。

II. オープンソースライセンスの種類

現在、国際的に認められているオープンソースライセンスは80種類以上あります。これらのライセンスに共通する特徴は、いずれもユーザーがソースコードを無料で使用、改変、共有できるという点ですが、それぞれ独自の利用条件が定められています。

オープンソースライセンスに利用条件がなく、作者情報の保持さえも要求されない場合、それは著作権を放棄するのと同等です。この場合、ソフトウェアは「パブリックドメイン」であると直接宣言できます。

使用条件の違いに基づいて、オープンソース ライセンスは主に 2 つのカテゴリに分けられます。

  1. 許容ライセンス
  2. コピーレフトライセンス

III. 緩和されたライセンス

3.1 特徴

パーミッシブライセンスは最も基本的なタイプで、ユーザーにほとんど制限を課しません。ユーザーはコードを変更した後、ソースコードを公開せずにそのまま使用できます。

基本的な特徴は3つあります。

(1)利用制限なし

ユーザーはコードを使用して、やりたいことを何でも実行できます。

(2)保証なし

コードの品質は保証されません。すべてのリスクはユーザーが負います。

(3)開示要件

ユーザーは元の著者を明らかにする必要があります。

3.2 共通ライセンス

一般的に、許容ライセンスには4つの種類があります。いずれもユーザーがコードを自由に使用できるようにしていますが、ユーザーが遵守する必要がある条件が異なります。

(1)BSD(2条項版)

ソフトウェアを配布する場合、元のライセンス声明を保持する必要があります。

(2)BSD(三条版)

ソフトウェアを配布する際は、元のライセンス条項を必ず保管してください。ソフトウェアのプロモーションに元の作者名を使用してはなりません。

(3)マサチューセッツ工科大学(MIT)

ソフトウェアを配布する場合、基本的に BSD (2 条バージョン) と一致する元のライセンス ステートメントを保持する必要があります。

(4)アパッチ2

ソフトウェアを配布する際は、元のライセンス条項を必ず保管してください。変更されたファイルについては、ユーザーにファイルが変更されたことを通知する必要があります。変更されていないファイルについては、ライセンスは変更せずにそのままにしておく必要があります。

IV. コピーレフトライセンス

4.1 コピーレフトの意味

コピーレフトは、著作権の反意語としてリチャード・ストールマンが作った用語です。

著作権とは、文字通り「複製する権利」であり、著作権制度の中核を成すものです。つまり、ユーザーは許可なく複製する権利を持たないということです。その対義語であるコピーレフトは、ユーザーが許可なく自由に複製できることを意味します。

ただし、このライセンスには前提条件があり、許容ライセンスよりも多くの制限があります。

バイナリ形式で配布する場合は、ソースコードを提供する必要があります。

変更されたソースコードは、元のコードと同じライセンスを維持する必要があります。

元のライセンスに加えて追加の制限を課すことはできません。

上記の 3 つの条件の中核となるのは、変更されたコピーレフト コードはクローズド ソースであってはならないということです。

4.2 共通ライセンス

一般的なコピーレフト ライセンスも 4 つあります (ユーザーに対する制限が最も厳しいものから最も緩いものの順に並べられています)。

(1)アフェロGPL(AGPL)

クラウド サービス (つまり、SaaS) で使用されるコードがこのライセンスの下にある場合、クラウド サービスのコードもオープン ソースである必要があります。

(2)GPL

プロジェクトに GPL ライセンスのコードが含まれている場合、プロジェクト全体を GPL ライセンスにする必要があります。

(3)LGPL

プロジェクトが動的リンクを使用してこのライセンスの下にあるライブラリを呼び出す場合、プロジェクトはオープンソースである必要はありません。

(4)モジラ(MPL)

ライセンスのコードが別のファイルにある限り、追加されるファイルはオープンソースである必要はありません。

V. よくある質問

このセクションでは、オープンソース ライセンスに関するよくある質問に回答します。

5.1 配布とは何ですか?

Affero GPL(AGPL)を除く他のライセンスでは、ライセンスの遵守は「配布」する場合にのみ義務付けられています。つまり、「配布」しない場合は、遵守する必要はありません。

簡単に言えば、頒布とは著作物をある個人から別の個人に譲渡することを指します。つまり、自分で使用し、他者と共有しない場合は頒布とはみなされません。また、ここでの「個人」は「法人」も指します。つまり、ユーザーが企業であり、社内でのみ使用する場合は、ライセンスは必要ありません。

クラウドサービス(SaaS)は「配布」に該当するのでしょうか?答えは「いいえ」です。したがって、オープンソースソフトウェアを使用して、ソースコードを提供しなくてもクラウドサービスを提供することができます。ただし、Affero GPL(AGPL)ライセンスは例外であり、クラウドサービスでもソースコードの提供が求められます。

5.2 オープンソースソフトウェアの特許はどのように扱われますか?

一部のライセンス (Apache 2 および GPL v3) には、ソフトウェアに含まれるすべての特許の使用をユーザーに許可する明示的な条件が含まれています。

その他のライセンス(BSD、MIT、GPL v2)では特許については一切言及されていません。しかし、一般的にこれらのライセンスはユーザーに特許ライセンスを暗黙的に付与するものとみなされており、特許侵害には該当しません。

一般的に、明示的な「特許留保」条項がない限り、オープンソース ソフトウェアの使用は特許侵害にはなりません。

5.3 開示要件とは何ですか?

すべてのオープンソース ライセンスには「通知要件」が付いており、ソフトウェア配布者はソフトウェアにオープンソース コードが含まれていることをユーザーに開示する必要があります。

一般的に、ソフトウェアに完全な元のライセンス テキストを提供し、元の作成者を公開することで、「開示要件」を満たします。

5.4 GPL ウイルスは本当に存在するのか?

GPLライセンスでは、プロジェクトにGPLコードが含まれている場合、プロジェクト全体がGPLとなることが規定されています。この伝染性を「GPLウイルス」に例える人もいます。

多くの企業は、自社のコードをオープンソース化せずにGPLソフトウェアを使用することで、この条項を回避しようとしています。しかし、GPLはこのような状況を防ぐように設計されているため、理論的にはこれは不可能です。

しかし、現実には、GPLを遵守しないことで最悪の事態となるのは訴訟です。裁判所にGPLの条件を満たせないと申し立てても、裁判官はGPLコードの使用停止(法的には「侵害の停止」)を命じるだけで、コードのオープンソース化を強制することはありません。なぜなら、著作権法の「著作権侵害に対する救済」には、侵害者がコードをオープンソース化しなければならないとは規定されておらず、侵害者が侵害を停止して損害賠償を請求できるとしか規定されていないからです。