序文
※本記事の最終更新日は2021-08-23です。最新の状況に対応できていないことが考えられるため、日付には十分注意してください。
GitHubで新規にリポジトリを作る際にライセンスを選択する必要があることもあって、新しく何かを作ろうとなった際に体裁としてライセンスをあらかじめ考えておくようになりました。しかし、それこそGitHubにおいても採用できるライセンスの種類が多すぎるがために、自分が作ろうとしてるものに対して何が適切かの判断が分からないという事態に陥ってしまいました1。
そのような事情から、各ライセンスを他との差異に着目して情報を纏め、主に自分自身の判断において役立てるために書かれた記事が本稿になります。本稿の著者は職業としてプログラミングやエンジニアリングを行っておらず、またそれ以外のプログラミング経験そのものも大して多くない素人であり、従ってプログラミングに関する大凡の経験が欠如していることをご了承ください。
関連記事
自分のプロダクトにライセンスを与えたいときなどに確認するとよい文書や記事、ページなどです。
- ChooseALicense.com—GitHubによる、ライセンス選びを助けてくれる情報ページです。英語サイトですがよくまとまっているいいページです。
- ライセンス選びに困ったらこのサイトを見よう! (2021-04-01, @besaklish)—上記サイトを基に日本語で要約した記事です。短いながら摘要だけさっと流したい人はこの記事を見ればいいんじゃないかと思います。
- たくさんあるオープンソースライセンスのそれぞれの特徴のまとめ (2013-07-25, coliss) — 同じくChooseALicense.com公開に合わせて、主だったライセンスの特徴をまとめられた記事です。ライセンスごとに必須・許可・禁止の3項目に分けて内容をまとめており、とにかく簡潔でわかりやすいです。
- 公開ライセンスの話 (2018-12-05, @lovee)—本記事で書きたかったことの半分くらいはこれに書いてあります。紹介数は少ないながら、解説がしっかり書かれているので、じっくりと理解を進めることができます。私みたいな日曜プログラマが書くうっすい文章とは比較になりません。
参考文献
- Various Licenses and Comments about Them (Free Software Foundation's Licensing and Compliance Lab)—GNUにおける各種ライセンスの解説です。GNU GPLと両立するかどうかという観点が含まれており、特にライセンスの比較には役立つでしょう。和訳文書は存在しますが、情報が古いため注意が必要です。
- さまざまなGNUライセンスはどのようにして互いに両立しますか? GNUライセンスに関してよく聞かれる質問内の、GNUライセンス同士の互換性について書かれた項目です。
※GNUの文書はCC BY-ND 4.0でライセンスされているため、当記事は引用を超えない範囲でこれを参考にしています。
- Compatible Licenses - Creative Commons (Creative Commons)—クリエイティブ・コモンズと互換性のあるライセンスに関する情報が記載された記事です。この文書自体はCC BY 4.0でライセンスされています。
ソフトウェアのライセンス
本節ではソフトウェアに対するライセンスで一般的に使用されるものを列挙しています。基本的に自分がライセンスする際のことを考えて書いているため、現行のものを基準にしています。昔のバージョンは古いライセンスに列挙しています。
コピーレフト
コピーレフトであるライセンスは、配布されたプログラム等の著作物、およびそこから派生した作品がすべて自由であることを要請します。二次利用に際してなんの制限も受けないことは魅力的ですが、同時に自身もコピーレフトを強制されるライセンス感染を持っています。完全に自由であることを割り切れるプロダクトであるならば、非常に便利なライセンス形態でしょう (ライセンス感染のせいで制作したプロダクトの権利処理がめんどうになることも往々にしてあるのですが)。
コピーレフトの代表例はクリエイティブ・コモンズ 表示-継承 4.0 (CC BY-SA 4.0)ですが (というより継承条項がそのままコピーレフトそのものですが)、以下のリンク先でクリエイティブ・コモンズからも明言されている通り**ソフトウェアのライセンスにCCを使用するべきではありません**。
GNU GPL バージョン3
コピーレフトなライセンスの最大手です。コピーレフト性を要求するならば、ほぼこのライセンス一択と言っても過言ではないでしょう。GPLv3でライセンスされた製品は自由に作成や実行を行うことができ、さらにソースコードの改変は告知条項と改変されたコードのGPLv3によるライセンスを条件として許可されます2。見方を変えれば、GPLv3 (or later) でライセンスされたが最後、派生作品はもれなくGPLv3 (or later)で公開されることを強制されます (コピーレフトを求める人はその状況をこそ求めているような気もしますが)。
GPLv3には公開された作品に関する法的保護 (例えば特許など) を回避する条項が盛り込まれている (第3項参照) ため、GPLそのものの条項を除けば、それらの各種法律等を気にしないでいいようにできています。その意味では考慮を単純にできるのでとてもいいライセンスだと思います。
GPLv3でライセンスされた製品の例は、様々なGNUの製品 (BashとかEmacsとか) やGIMPなどがあります。
- 翻案物がGPLv3 (or later) で配布可能であるようなライセンス:GPL関連ライセンス各種3、Apache 2.0、3条項BSD、2条項BSD
- 翻案物がGPLv3では配布可能であるようなライセンス:CC BY-SA 4.04
- GPLv3としてライセンスする製品の一部分として利用可能であるライセンス:LGPLv2.1 (or later)、MPL 2.0、etc.
GNU LGPL バージョン3
一部のライブラリに対して主に適用される、ゆるいコピーレフトなライセンスです。例としては、glibがLGPLv2.1 or laterで配布されています。GPLとの違いは、単なるライブラリとしての使用であるならば、LGPLで配布されたライブラリを非GPL/LGPLのプログラムとリンクして使用してもよいことです (具体的には第5項参照)。
公式にすらあなたの次回のライブラリには劣等GPLを使うべきでない理由という文章があるように、このライセンスは非常に限定的な状況でのみ推奨されます。
- 翻案物がLGPLv3 (or later) で配布可能であるようなライセンス:GPLv3と同様
- LGPLv3 (or later) でライセンスされた製品を利用可能なライセンス:GPLv3 (or later)
GNU AGPL 3.0
「特にネットワークサーバソフトウェアに適用」されることを指向したライセンスです (記事の筆者にサーバサイドの開発経験がないために、あまり詳しい説明を書くことができないことをご了承ください)。第13項の記述に基づいて、AGPLでライセンスされた製品を改変したものは、そのソフトウェアの (ネットワークを介した) ユーザーに対して、その改変したバージョンのソースコードにアクセスする手段を無償で公開しなければなりません。この制約により、AGPLv3は厳密にはGPLv3と非互換になります5。
Mozilla Public License 2.0
Mozilla Firefoxのライセンスです。コピーレフトですがGPLよりは条件が緩く、MPLでライセンスされたコードに関してはその改変も含めてMPLでライセンスされ続け6る必要がありますが、MPLでライセンスされたコードを含む製品全体についてはその限りではありません。さらに製品全体がGPLv2, LGPLv2.1, AGPLv3.0あるいはそれ以降のバージョンでライセンスされた場合は、MPLでライセンスされた部分はそれらのライセンスとMPLのデュアルライセンスが与えられたような状態になります。
MPLはGPLと違い、Apache License 2.0のような、特許で保護されたコードの取り扱いに関する条項が存在します (第2項、5.2項など)。また、プロプライエタリな製品での利用も考慮されることもあって、3.5項のような項目があることも特徴的です。
Permissiveな (寛容な) ライセンス
わずかな条件 (例えばライセンス自体の表示のみ) で自由に再配布その他が可能となるライセンスです。
Apache License 2.0
Free Software Foundation一押しのライセンスです。利用者が通常の二次利用に際して必然的に特許を侵害する場合、それを許容する特許ライセンスを付与する項目が存在します (第3項)。このような法的問題の回避やプルリクエストの処理に関して明文化されているという点でApache License 2.0は優れており、以下で紹介するBSDやMITライセンスについて記述してある場面でも「特許で裏切られないからApache Licenseがお勧めだよ!」としつこく記載されています。
Apache License 2.0では再頒布の際に変更の告知および各種帰属告知の表示が要請されます。その意味で、後述のBSDやMITライセンスよりは条件が強いものになっています。これらの明示的な言及部分に対して考慮する必要があるかどうかによって、Apache License 2.0と後述の各種ライセンスのどちらを適用すべきかは選ばれるべきでしょう。
3-Clause BSD
3条項BSDライセンス、修正BSDライセンスとも呼ばれます。BSDライセンスは古いバージョンも含めていくつか異なるライセンスが存在するため、3条項BSDと呼ぶのが曖昧さがなくて良いと思います。
3条項BSDライセンスは、ライセンス文による各種表示を行うことにより、製品の再頒布や使用が許可されるライセンスです。ただし、特別の許可なしに派生製品の宣伝および販売促進にライセンサーあるいはその所属組織の名前を使用してはならないとする禁止条項が含まれます。
2-Clause BSDとMIT License
2-Clause BSDは2条項BSDライセンス、FreeBSDライセンスとも呼ばれます。先述の3条項BSDライセンスから禁止条項すら取り去ったライセンスになります。使用者のたいていの行為はもはや妨げられません。
MITライセンスはExpatライセンスとも呼ばれます。GNUのライセンス紹介ページではExpatライセンスと一貫して書かれています。これはX11ライセンスもMITライセンスとよばれることがあるためだそうです。
2つのライセンスは実質的にほとんど同一であり、MITライセンスが具体的な利用方法について明示的に言及していることが最大の差異となります (そして、それを理由にMITライセンスの方が2条項BSDより良いという主張がなされています)。余分な考慮の一切を投げ捨てて構わないような小規模開発であれば、MITライセンスは非常によくはたらくのではないかと思います。.NET CoreやRailsはMITライセンスが用いられています。
古いライセンス
GNU GPL バージョン2.0
GPLの古いバージョンです。基本的にはバージョン3と同様ですが、バージョン3で条項が追加されているために、バージョン3とは厳密には両立しません。GPL version 2 or laterでライセンスされている場合はバージョン3で再ライセンスが可能なので、現在改めてこのライセンスを利用することは恐らくほぼありません。
文書やその他一般の著作物に対するライセンス
特別な状況を考慮しなくてよい著作物に対するライセンスです。
クリエイティブ・コモンズ・ライセンス
6+1種類のバリエーションがある汎用的なライセンス形態です。ソフトウェアやFSFが推し進める自由の考え方とは相性が悪いですが、そうではない様々な場面で利用されています。Wikipediaの文章はCC BY-SA 3.0 (非移植) でライセンスされていますし、その他のサイトでも、例えばMozillaの文書は (別途記載されていない限り) CC BY 3.0またはそれ以降のバージョンでライセンスされています。
バリエーションがあるため、どのようなケースにおいても自由に利用が可能であることはありません。継承が条件に入っていれば翻案物も継承付きのクリエイティブ・コモンズでライセンスしなければなりませんし、非営利が条件であれば特別の許可なしに商業利用はできません。改変禁止であるならば翻案物を共有してはなりません。表示以外の項目はすべて、利用するに際して非常に強い要求を課すため、その必要がどうしてもあるのでなければ表示のみを要件とするのが良いと筆者は考えます (もちろん、そもそもCCライセンスが適さない場合は除きます)。
GNU FDL バージョン1.3
GNU FDL、あるいはGFDLはGPLと同様のコピーレフトなライセンスで、主な対象がソフトウェアか文書かという点において異なるものです。改変は第4項に列挙された条件を満たす限りにおいて許可され、さらに文書にカバーテキストおよび変更不可な部分が無い場合はCC BY-SA 3.0でも利用可能となります。Wikipediaの文書は正確にはこのデュアルライセンスで提供されています。
タイトルに関する条件や変更不可部分の明示といったオプションが利用可能であるという点で、GFDLはクリエイティブ・コモンズよりもある意味で柔軟なライセンスです。
特殊な著作物に対するライセンス
フォント
フォントに関するライセンス事情はとても特殊です。それは、ソフトウェア以上に様々な場面で利用されたり複製されたり再頒布されたりするからです。その結果、フォント用のライセンスが特別に存在することからもその特殊性が伺えます。
本節ではフォントの配布に際して使用される、代表的と思われるライセンスを挙げていきますが、様々な理由から記載されないライセンスが存在することをご了承ください。例えば、Adobe FontsのライセンスはAdobeのエンドユーザーライセンス契約および各フォントのライセンサーの許諾の兼ね合いによってフォントごとに変動します。
以下で紹介する他にも、独自ライセンス (IPAフォントライセンス・Ubuntu Font License) やApache License 2.0を適用したフォントが存在します。
SIL Open Font License
一般的でオープンなフォント用のライセンスであり、GPLと同様にコピーレフトです。コピーレフトである以外にも、単体での販売禁止、著作権者が予約したフォント名の使用禁止、3条項BSDのような許可のない宣伝に著作者等の名前を使用することの禁止が特徴的です。
有名な例では、Google Noto Fontsがこのライセンスで配布されています。
Microsoftで提供されているフォントのライセンス
Windowsにデフォルトで同梱されているなどして、Microsoftから(サブ)ライセンスされているフォントがあります。基本的には、フォントそのものの再配布にあたる行為 (各種コンテンツへのフォントそのものの埋め込み) や他のライセンスに抵触する行為でなければ、そのフォントを利用して作成したコンテンツを公開等することは自由とされているようです。
例外条項つきGNU GPL
通常のGPLライセンスされたフォントは、そのフォントが埋め込まれた文書もGPLでライセンスされることを要求してしまいます。幸いにもGPLは追加条項を要求することを妨げないため、フォントの利用に関する例外条項を設けることでこの問題を回避することができます。
-
公開を視野に入れるなら、脳死ではなく (ある程度でもいいから) 違いを分かったうえで確かに自分が選んだ状態におきたいと私は考えます。 ↩
-
GNU GPL version 3 or any later version でのライセンスを適用することで、将来のバージョンによる再ライセンスも可能となります (第14項参照)。 ↩
-
多くのGPLv2製品は、v3での再ライセンス利用が許可されています。唯一、GPLv2 onlyで配布されてしまっているものに限っては利用できません。参考文献参照。 ↩
-
CCが両立するライセンスのリストにバージョン3のみを記載しているため、将来のバージョンでのライセンスを現時点で与えることはできず、(GPLv3の第14項に基づいて) クリエイティブ・コモンズが将来のバージョンに対して両立性を認めたときにはじめて再ライセンスが可能になる、という扱いになるらしい。 ↩
-
ただし、GPLでライセンスされた製品をAGPLでライセンスされた製品と共にAGPLでライセンスすることが (両ライセンス各第13項の要請を満たすことにより) 可能です。 ↩
-
さらにMPLの条項に基づいて、そのソースコードは使用者が入手可能な状態に置かれます。 ↩