オープンソースソフトウェアライセンスに関しては、2つの大きなカテゴリーがあります。一部のライセンスはコピーレフトライセンスのカテゴリに該当し、他は許可型オープンソースライセンスです。
この記事では、オープンソースソフトウェアライセンスとは何か、そしてその種類について説明します。
はじめに
オープンソースライセンスとは、ユーザーがソフトウェアのソース素材を自由に閲覧、修正、共有できるようにするライセンスの一種です。この方法により、ユーザーはソースコードを頻繁に更新し、元の製品に基づいて構築することができます。
選択したオープンソースライセンスの種類によっては、ユーザーがコードに対して特定の活動を行える場合とそうでない場合があります。例えば、販売したり商業的に使用したりすることができるかどうかです。さらに、オープンソースライセンスには多くの異なる種類があり、それぞれ異なる利用条件を提供しています。
したがって、本格的にその利点を活用する前に、オープンソースライセンスの種類を完全に理解することが重要ですので、決定を下す前に以下をよく読みましょう。
オープンソースライセンスの種類
許可型ライセンス
許可型ライセンス、時には非コピーレフトライセンスとも呼ばれるものは、ユーザーにソースコードを使用、修正、共有する許可を与えますが、ユーザーは再配布のためにそれらの条件の一部を変更するオプションも持っています。ソフトウェアの文脈において、派生作品とは既存のプログラムに基づいたソフトウェアの一部を指します。元の作品が許可型ライセンスの下でリリースされた場合、クリエイターは元の作品のライセンスが要求したものとは異なる条件で派生作品を共有することを選択できます。
コピーレフトライセンス
オープンソースのコピーレフトライセンスは、オープンソースソフトウェアのユーザーに、ソフトウェアを修正、使用、再配布する自由を提供します。ただし、ユーザーは他のユーザーに対して元々与えられた権利と同じ権利を付与することによって、特定の権利を下流の他のユーザーに引き継ぐことが求められます。
コピーレフトライセンスは、コードの再配布と変更が許可される方法を定義し、独占的または非オープンにする試みを禁止します。これにより、ソフトウェアを修正する開発者は、更新するためのソースコードにアクセスできるだけでなく、自分自身の変更を組み込むこともできます。当然ながら、すべての修正は他の人がオープンソースの利用可能性から恩恵を受けられるように提供されなければなりません。これは学術的または研究利用の場合には問題ありませんが、商業ソフトウェアを構築する際にはしばしば障害となります。
オープンソースソフトウェアライセンスを含める理由
オープンソースとして他の人とソフトウェアを公開または共有する際に、オープンソースソフトウェアライセンスを含めることは重要です。ライセンスは、いくつかの重要な目的を果たします:
- コラボレーションと革新を促進するため
オープンソースライセンスは、誰でもあなたのソフトウェアのソースコードを閲覧、修正、配布できるようにします。これにより、他の開発者があなたのプロジェクトに貢献したり、バグを修正したり、新機能を追加したりすることを奨励します。これは、より堅牢で革新に満ちたソフトウェア製品へとつながる可能性があります。
- ユーザーにより多くの制御と柔軟性を与えるため
オープンソースライセンスは、通常、ユーザーが商業利用を含む任意の目的でソフトウェアを使用、修正、配布できることを許可します。これにより、ユーザーは自身のソフトウェア体験をよりコントロールでき、独占的ソフトウェアベンダーへの依存を減らすことができます。
- ソフトウェアの周りにコミュニティを構築するため
オープンソースライセンスは、あなたのソフトウェアに情熱を持つユーザーや開発者のコミュニティを構築するのに役立ちます。このコミュニティは、サポート、フィードバック、新しいアイデアをプロジェクトに提供することができます。
- ソフトウェアをよりアクセスしやすく、包摂的にするため
オープンソースソフトウェアは通常、無料でダウンロードおよび使用でき、多くの言語で利用可能です。これにより、世界中の人々が収入やバックグラウンドに関係なくアクセスしやすくなります。
これらの利点に加えて、オープンソースライセンスは次のことを助けることができます:
- 著作権侵害を回避するため**
ライセンスなしでソフトウェアを配布すると、著作権侵害の訴訟のリスクを負う可能性があります。オープンソースライセンスは、ユーザーにソフトウェアを使用、改良、配布する権限を明示的に与え、法的責任からあなたを守ることができます。
- 優れた人材を引きつけ、維持する
多くの有能なソフトウェア開発者はオープンソースプロジェクトに惹かれます。ソフトウェアをオープンソースライセンスで公開することで、あなたの会社は潜在的な従業員にとって魅力的なものになります。
- ブランドの評判を高める
オープンソースソフトウェアは技術コミュニティから広く尊敬されています。ソフトウェアをオープンソースライセンスで公開することで、あなたの協力と革新へのコミットメントを示すことができます。
人気のあるパーミッシブソフトウェアライセンス
パーミッシブソフトウェアライセンスは、最も人気のあるライセンスの一つです。本質的に、これらのライセンスはユーザーに最小限の制約でソフトウェアを改良および再配布することを許可します。最も人気のあるパーミッシブソフトウェアライセンスには以下の3つがあります:
MITライセンス
MITライセンスは、最も人気がありパーミッシブなオープンソースソフトウェアライセンスです。このライセンスは、ライセンスに記載されたすべての条件を遵守する限り、ユーザーに自由に共有、改良、使用、商業化する権利を付与します。
Apache License 2.0
Apache License 2.0は、ユーザーがソフトウェアを自由に改良および再配布できるようにする人気のあるパーミッシブソフトウェアライセンスで、結果として生じる著作権の声明や通知が原則的に保持されることを保証します。このオープンソースライセンスは、独自の改良と再配布を許可し、誰もがソフトウェアを使用する際の権利を理解できるように明確なライセンス条項を提供します。
BSD(バークレーソフトウェア配布)ライセンス
GitHubでは、2つのBSDライセンスの中から選択できます。 BSD 2-Clause “Simplified” ライセンスは、時折「FreeBSD」ライセンスと呼ばれ、BSD 3-Clause “New” または “Revised” ライセンスです。これら2つのライセンスの主な違いは、3条項に関するもので、この条項は、ソフトウェアユーザーが商品やサービスを支援するために著者の名前を使用することを制限します。
Boost Software License
Boost Software Licenseは、C++のBoostライブラリに由来し、2008年にOSIによって承認されました。このライセンスはMITおよびBSDライセンスに類似していますが、バイナリ形式で再配布する際に帰属を求めません。
コピーレフトオープンソースソフトウェアライセンス
コピーレフトライセンスは、ソフトウェアユーザーにソースコードを使用、改良、共有する権限を付与しますが、特定の制約、条件、および条項を通じて再ライセンスを防ぐこともできます。これは、このライセンスの相互的な特性を表しており、ユーザーの作業がライセンスで定められた元の権利に従うことを要求します。
GNUライセンス コピーレフトソフトウェアライセンスに関しては、GPL(一般公衆ライセンス)が最も人気があり広く使用されています。このオープンソースライセンスは、ユーザーにプログラムのコピーや修正版を配布する自由を与えますが、著作権通知、保証の免責事項、または変更されていないプログラムに追加された他のライセンスなど、一部の条件を保持する必要があります。
このライセンスタイプでソフトウェアを提供することにより、開発者は他の人が彼らのソースコードにアクセスできることを保証し、コミュニティに利益をもたらす改善や適応が可能となります。また、この「コピーレフト」の概念は、誰もが自由ソフトウェアで作業する際に同じ自由を共同で共有できることを保証します。
Mozilla Public License
Mozilla Public License0/)、またはMPLは、Mozilla Foundationから提供されており、弱いコピーレフトライセンスと見なされています。このライセンス(Eclipse Public Licenseと比較した場合)の違いは、ファイルベースのコピーレフトであるため、コードをオープンソースまたはプロプライエタリコードと組み合わせることができるという点です。
Eclipse Public License
Eclipse Public Licenseは、Eclipse Foundationから提供されており、弱いコピーレフトライセンスと見なされています。弱いコピーレフトライセンスは、ソフトウェアユーザーにコードに対する変更を共有することを要求します。このライセンスは、GNUの一般公衆ライセンスでユーザーが直面する厳しい要件を軽減する方法として、より弱いコピーレフトを実装することを選択しました。
プロジェクトに適切なライセンスを選択するには?
-
オープンソースライセンスの下でプロジェクトをリリースする場合、使用しているプロジェクトと互換性のあるライセンスを選択してください。
-
商業目的で他の人にプロジェクトを使用してもらいたい場合は、これを許可するライセンスを選択してください。
-
他の人にプロジェクトを修正および配布してもらいたい場合は、これを許可するライセンスを選択してください。
-
プロジェクトが無料でオープンソースのままであることを確保したい場合は、コピーレフトライセンスを選択してください。
-
どのライセンスを選ぶべきか不明な場合、オープンソースイニシアティブには比較可能な人気のあるライセンスのリストがあります。
オープンソースプロジェクトに適切なライセンスを選択することは重要な決定です。ニーズと目標を慎重に考慮することで、望ましい結果を達成するために役立つライセンスを選ぶことができます。
Capgoの新しいライセンス
これをすべて達成するにはどうすればよいですか?ライセンスを変更することによってです。
Capgoは現在、MITからGNU Affero General Public License V3(AGPLv3)またはそれ以降のバージョンにライセンスを変更しました。Capgoのバージョンはこちらで見つけることができます。
Capacitor-updater(プラグイン)は現在、LGPLv3からMozilla Public License Version 20(MPLv2)またはそれ以降のバージョンにライセンスを変更しました。Capacitor-updaterのバージョンはこちらで見つけることができます。
この変更は、Capgo Cloudに加入している方やCapgoをセルフホストしている方にとっては何の影響もありませんが、自分のソフトウェアを利用して直接競争しようとしたいくつかの企業を怒らせるかもしれません。
AGPLは、Googleが問題を抱えるライセンスであり、彼らはクローズドソースコードを開示する準備ができていません。GoogleはAGPLに反対しており、次のように述べています。「GNU Affero General Public License(AGPL)の下でライセンスされたコードは、Googleで使用してはなりません。」
AGPLの目標は、ユーザーの自由を最大化し、企業にオープンソースへの貢献を促進することです。私はユーザー向けのスタンドアロンアプリケーションであり、ライブラリや大きなプロジェクトの一部ではありません。私はGoogleの寄付を求めているわけではないので、AGPLライセンスで満足しています。それはCapgoにとって適切なライセンスです。
結論
オープンソースソフトウェアライセンスを選択する際に考慮すべき要素はたくさんあります。しかし、開発者コミュニティの間には確かに人気のある選択肢があります。一般的な許可ライセンスにはMITライセンス、Apacheライセンス、BSDライセンスが含まれます。一般的なコピーレフトライセンスにはGNU一般公衆ライセンスやMozilla公衆ライセンスが含まれます。