オープンソースソフトウェアのライセンスには、大きく分けて2つのカテゴリーがあります。コピーレフト型のライセンスと、パーミッシブ(寛容型)なオープンソースライセンスです。
この記事では、オープンソースソフトウェアのライセンスとは何か、その種類について解説します。
はじめに
オープンソースライセンスとは、ソフトウェアのソースコードを自由に閲覧、修正、共有することを許可するライセンスです。これにより、ユーザーは code を頻繁にアップデートし、元のプロダクトをベースに発展させることができます。
選択するオープンソースライセンスの種類によって、code の販売や商用利用といった特定の行為ができる場合とできない場合があります。また、オープンソースライセンスには多くの種類があり、ソースコードの利用方法に応じてそれぞれ異なる条件が定められています。
そのため、ライセンスのメリットを享受する前に、その種類を十分に理解しておくことが重要です。意思決定を行う前に、以下の詳細を必ずご確認ください。
オープンソースライセンスの種類
寛容なライセンス
Permissive License(寛容型ライセンス)は、時にノンコピーレフトライセンスとも呼ばれ、ユーザーに対して code の使用、改変、共有を許可します。また、二次的著作物を含む再配布の際、一部の条件を変更することも可能です。ソフトウェアにおける二次的著作物とは、既存のプログラムに基づいたソフトウェアを指します。元のコードがPermissive Licenseで公開されている場合、開発者は二次的著作物を元のライセンスとは異なる条件で共有することを選択できます。
コピーレフト・ライセンス
オープンソースにおけるCopyleft License(コピーレフトライセンス)は、作者が持つソフトウェアの改変、使用、再配布の自由をユーザーに提供します。ただし、ユーザーは自身が受けたものと同じ権利を後続のユーザーにも付与し、特定の権利を継承させる必要があります。
コピーレフト・ライセンスは、code の再配布や変更の条件を定義するもので、プロプライエタリ化や非オープンソース化を禁止しています。これにより、ソフトウェアを修正する開発者が、アップデートや独自の変更を組み込むためにソース code にアクセスできることが保証されます。もちろん、他のユーザーもオープンソースの恩恵を受けられるよう、変更内容も公開する必要があります。これは学術研究などのユースケースでは問題になりませんが、商用ソフトウェアを開発する際には、しばしば大きな判断基準となります。
なぜオープンソースソフトウェアライセンスを含めるのか?
ソフトウェアをオープンソースとして公開・共有する場合、オープンソース・ライセンスを含めることは極めて重要です。ライセンスには、主に以下のような重要な役割があります。
- コラボレーションとイノベーションの促進。
オープンソース・ライセンスによって、誰でもソフトウェアのソース code を閲覧、修正、配布できるようになります。これにより、他の開発者がプロジェクトに貢献したり、バグを修正したり、新機能を追加したりすることが促進されます。その結果、より堅牢で革新的なソフトウェア製品へとつながります。
- ユーザーへのコントロール権と柔軟性の提供。
一般的なオープンソース・ライセンスでは、商用利用を含め、あらゆる目的でソフトウェアを使用、修正、配布することが許可されています。これにより、ユーザーはソフトウェアの利用体験をより自由にコントロールでき、特定のプロプライエタリ・ベンダーへの依存を減らすことができます。
- ソフトウェアを中心としたコミュニティの形成。
オープンソースライセンスを活用することで、あなたのソフトウェアに情熱を持つユーザーや開発者のコミュニティを構築できます。このコミュニティは、プロジェクトへのサポートやフィードバック、新しいアイデアを提供してくれます。
- ソフトウェアをよりアクセシブルでインクルーシブにするため。
オープンソースソフトウェアは通常、無料でダウンロードして利用でき、多言語で提供されていることも多いです。これにより、収入やバックグラウンドに関係なく、世界中の人々が利用しやすくなります。
これらのメリットに加えて、オープンソースライセンスには以下の効果もあります:
- 著作権侵害の回避。
ライセンスなしでソフトウェアを配布すると、著作権侵害の訴訟リスクを負う可能性があります。オープンソースライセンスは、ユーザーに対してソフトウェアの使用、改変、配布の許可を明示的に与えるため、法的な責任からあなたを守ることができます。
- 優秀な人材の獲得と維持。
多くの才能ある開発者がオープンソースプロジェクトに惹かれます。ソフトウェアをオープンソースライセンスで公開することで、企業としての魅力を高め、潜在的な採用候補者にアピールできます。
- ブランドレピュテーションの向上。
オープンソースソフトウェアはテックコミュニティから広く尊重されています。オープンソースライセンスでソフトウェアを公開することで、コラボレーションとイノベーションへのコミットメントを示すことができます。
人気のパーミッシブなソフトウェアライセンス
許諾型(Permissive)ライセンスは、最も普及しているソフトウェアライセンスの一つです。本質的に、これらのライセンスは最小限の制限で、ユーザーがソフトウェアを自由に修正・再配布することを許可します。代表的な3つの許諾型ライセンスは以下の通りです:
MITライセンス
この MITライセンス は、最も一般的で寛容なオープンソースライセンスです。ライセンスに定められたすべての条件に従う限り、素材を自由に共有、修正、使用、および商用利用できるなど、ユーザーに大きな自由を提供します。
Apache License 2.0
Apache License 2.0 は、ユーザーがソフトウェアを自由に修正・再配布できる一方で、著作権表示や通知が元の形式で維持されることが保証されている、人気の高い許諾型ライセンスです。このオープンソースライセンスは、独自の修正や再配布を許可し、明確なライセンス条項を提供しているため、誰でもソフトウェア使用時の権利を理解できます。
BSD (Berkeley Software Distribution) ライセンス
GitHub では、2種類のBSDライセンスから選択できます。 BSD 2-Clause “Simplified” License(「FreeBSD」ライセンスと呼ばれることもあります)で、もう一つは BSD 3-Clause “New” or “Revised” License. これら2つのライセンスの主な違いは3条項目の有無にあります。この条項は、ソフトウェアの利用者が、製品やサービスの宣伝のために著者、著者ら、または貢献者の名前を使用することを制限するものです。
Boost Software License
Boost Software Licenseは、C++のBoost Librariesに由来し、2008年にOSIによって承認されました。このライセンスはMITやBSDライセンスと似ていますが、バイナリ形式で再配布する際に著作権表示を必要としない点が異なります。
コピーレフト型のオープンソースライセンス
Copyleftライセンスは、ソフトウェア利用者にソース code の使用、改変、共有を許可する一方で、特定の制限や条件を通じて再ライセンス化を防ぎます。これは、利用者の成果物がライセンスに記載された元の権利を遵守することを求める、このライセンスの相互的な特性を表しています。
GNUライセンス Copyleft型のソフトウェアライセンスにおいて、 GPL (General Public License) は、最も普及しており、広く利用されているものの一つです。このオープンソースライセンスは、著作権表示、保証の免責事項、または未改変のプログラムに追加されたその他のライセンスなど、特定の条件を維持する限り、プログラムのコピーや改変版を配布する自由を利用者に与えます。
このライセンス形式でソフトウェアを公開することで、開発者は自身の code を他者が利用できるようにし、コミュニティに貢献する改善やカスタマイズを可能にします。さらに、「コピーレフト」という概念により、フリーソフトウェアを利用する誰もが、同じ自由を協力的に共有できる仕組みになっています。
Mozilla Public License
この Mozilla Public License(MPL)は、 Mozilla Foundation によって提供されており、弱コピーレフトライセンスの一種とされています。Eclipse Public License との違いは、ファイル単位のコピーレフトである点です。つまり、code をオープンソースやプロプライエタリな code と組み合わせて使用することが可能です。
Eclipse Public License
この Eclipse Public Licenseは、Eclipse Foundation による弱コピーレフトライセンスです。弱コピーレフトライセンスでは、ユーザーが code に加えた変更を共有することが求められます。このライセンスは、GNU General Public License の厳格な要件を緩和し、利用しやすくするために、より緩やかなコピーレフトを採用しています。
プロジェクトに最適なライセンスの選び方
-
プロジェクトをオープンソースライセンスで公開する場合は、使用している他のプロジェクトと互換性のあるライセンスを選択してください。
-
他者がプロジェクトを商用目的で使用することを許可したい場合は、それを認めるライセンスを選択してください。
-
他者がプロジェクトの改変や配布を行うことを許可したい場合は、それを認めるライセンスを選択してください。
-
プロジェクトが常にフリーかつオープンソースであることを保証したい場合は、コピーレフトライセンスを選択してください。
-
どのライセンスを選べばよいか迷った場合は、Open Source Initiativeが提供している主要なライセンスの比較リストを参考にしてください。
オープンソースプロジェクトに適切なライセンスを選ぶことは、非常に重要な決断です。ニーズと目標を慎重に検討することで、望む結果を実現するためのライセンスを選ぶことができます。
Capgo の新しいライセンス
では、これらをどのように実現すればよいのでしょうか? ライセンスを変更することで可能です。
Capgo は、ライセンスを MIT から GNU Affero General Public License V3 (AGPLv3) またはそれ以降のバージョンへと変更しました。Capgo のバージョンは こちらから確認できます.
Capacitor-updater (プラグイン) は、ライセンスを LGPLv3 から Mozilla Public License Version 2.0 (MPLv2) またはそれ以降のバージョンへと変更しました。Capacitor-updater のバージョンは こちらから確認できます.
Capgo Cloudをサブスクライブしている方や、Capgoをセルフホストしている方にとって、今回の変更による影響はありません。しかし、貢献もせずに私のソフトウェアを利用して直接的な競合を試みてきた一部の企業にとっては、問題となるかもしれません。
Googleは、自社のクローズドソースなcodeを公開する準備ができていないため、AGPLに対して難色を示しています。GoogleはAGPLに反対しており、 次のように規定しています。「GNU Affero General Public License (AGPL) ライセンス下のCodeを、Google内で使用してはならない」
AGPLの目的は、ユーザーの自由を最大限に高め、企業によるオープンソースへの貢献を促すことです。私はユーザー向けのスタンドアロンなアプリケーションであり、ライブラリや大規模プロジェクトの一部ではありません。Googleからの寄付を求めているわけではないので、AGPLライセンスを採用できることを嬉しく思います。これがCapgoにとって最適なライセンスです。
まとめ
オープンソースソフトウェアのライセンスを選択する際には、多くの要素を考慮する必要があります。しかし、開発者コミュニティにおいて一般的な選択肢はいくつか存在します。代表的なパーミッシブライセンスには、MIT License、Apache License、BSD Licenseなどがあります。また、代表的なコピーレフトライセンスには、GNU General Public LicenseやMozilla Public Licenseがあります。
オープンソースソフトウェアライセンスの理解から続ける
使用している場合 オープンソースソフトウェアライセンスを理解する live update の配信を計画するには、以下と連携させます: Capgo Live Updates Capgo Live Updates のプロダクトワークフロー向けに、 概要 実装の詳細は Overview を 機能 実装の詳細は Features を アップデートの動作 実装の詳細はアップデートの動作を、および アップデートの種類 実装の詳細はアップデートの種類を。