OSSライセンス区別のチップス
海洋ロボコンをやってた人です。
今回はOSSライセンスについてインプットしたので、備忘録として記載しておきます。
OSSライセンスは著作者が示した著作権の行使の一つで、各OSSのWebサイト、文書、ライセンス条文以外にも著作者が指定した条件が追記されていることがあります。
一方で、誰が書いても同じようなプログラムの場合、創作性があるといえないため、著作権侵害にならない場合もあれば、ライセンスによって遵守範囲が異なるので、認識齟齬が多いというのも実態としてあります。
そのため、各ライセンスの種類、適応範囲を理解しておくことはSW開発においても重要といえるので、調べて学んでみたというのが背景です。
以下箇条書きになりますが、何卒宜しくお願い致します。
また、誤記等あればご指摘ください。
【免責事項】
・情報の正確性について
当ページは、情報を正確に提供するための努力をしておりますが、提供される情報の正確性や完全性を保証するものではありません。ユーザーが当ページの情報を元に取った行動の結果について、当ページおよび著者は一切の責任を負いません。
必ずOSSライセンス公式ドキュメントより詳細をご参照ください。
1: License Table
OSSライセンスは BSD系 / MPL系 / LGPL系 / GPL系 の4タイプ、コピーレフト / 準コピーレフト / 非コピーレフトの3つのオープンタイプに分類される。
以下に各ライセンスのサマリを記載。
Item | GPL | AGPL | LGPL | MPL | Apache | MIT | BSD |
---|---|---|---|---|---|---|---|
タイプ | コピーレフト | コピーレフト | 準コピーレフト | 準コピーレフト | パーミッシブ | パーミッシブ | パーミッシブ |
再配布 | 伝搬するソースはすべて開示 | 伝搬するソースはすべて開示 | 修正ライブラリは開示 | 修正ファイルは開示 | 元の著作権、ライセンス、お知らせを含む | 元の著作権およびライセンスを含む | 元の著作権およびライセンスを含む |
修正 | 派生物はGPLでライセンス | 派生物はAGPLでライセンス | 派生物はLGPLまたはGPLでライセンス | 派生物はMPLまたはGPLでライセンス | ライセンスのコピーを提供 | 元の著作権およびライセンスを含む | 元の著作権およびライセンスを含む |
著作権表示 | 必要 | 必要 | 必要 | 必要 | 必要 | 必要 | 必要 |
商用利用 | 可 | 可 | 可 | 可 | 可 | 可 | 可 |
その他 | 特許に関する条項あり | 特許に関する条項あり / サーバーサイドでの使用にも適用 | ライブラリやモジュールに適用 / リバースエンジニアリングを許可 | - | 特許に関する条項あり | - | - |
※伝搬ソース:GPL系のライブラリを呼び出したソースなど、関連するコードすべてを示す。ライセンス感染とも呼ばれる。
各ライセンスの詳細は以下に記載。
1.1: Copyleft licenses
コピーレフトライセンスとも言い、GPLタイプに該当する。最も伝搬性が強いライセンス。
GPL系ライセンスを使用したソースの配布はすべて開示する必要があり、修正する際は同じライセンスまたは互換性のあるライセンスの下で変更を共有する必要がある。
GNU General Public License (GPL) License
GPL には、バージョン 2.0 (GPLv2) やバージョン 3.0 (GPLv3) などがありGNUとも表記される。
GPLv3 では、「tivoization」(デジタル制限を使用してユーザーがソフトウェアを変更できないようにする慣行) を防止し、特許の問題に対処するための規定が追加されている。
Affero General Public License (AGPL) License
日訳ではアフェロGPLと呼ぶ。
GPLに似ているが、Web アプリケーションなど、サーバー上で実行され、ネットワーク経由でアクセスされるように設計されたソフトウェアによく使用される。
バージョン 3 (AGPLv3) には、ネットワーク経由で配布されるソフトウェアに対する追加要件が含まれる。
1.2: Weak copyleft
準コピーレフトとも言う。
OSS利用で修正したファイルやライブラリ、モジュールの公開義務があるが、全体のソフトウェアを公開する必要はない面で GPL系より弱いコピーレフトであるといえる。
Lesser General Public (LGPL) License
LGPL には、バージョン 2 (LGPLv2) とバージョン 3 (LGPLv3) の 2 つのバージョンがあり、主にライブラリやモジュール向けのライセンスである。
修正した部分のソースコードを公開する義務があるが、他の部分のソースコードを公開する必要はないということ。
LGPLの利用プログラムはリバースエンジニアリングの許可が必要。(動的リンクは除く)
Mozilla Public License (MPL) License
MPLは、ライセンスされたソフトウェアの修正したファイルやモジュールのソースコードを開示する必要があるが、全体のソフトウェアのソースコードを公開する必要はないというもの。
1.3: Permissive licenses
パーミッシブライセンス / 非コピーレフトとも言う。
誰でも制限や義務なしにソフトウェアを使用、変更、配布できるオープンソース ライセンスで、ソース コードを開示したり変更を共有したりすることなく、ソフトウェアとその派生物をプロプライエタリ製品またはクローズド ソース製品に組み込むことができる。
MIT License
著作権表示と保証または責任の放棄を記載する限り、ユーザーがソフトウェアを使用、コピー、変更、配布できる、寛容なオープン ソース ソフトウェア ライセンス。
MIT ライセンスは、特に Web 開発やプログラミング言語に関連するオープン ソース ソフトウェア プロジェクトでよく使用される。
Apache 2.0 License
著作権表示、保証または責任の放棄、元のソフトウェアに加えられた変更の通知を含める限り、ユーザーはソフトウェアを使用、コピー、変更、配布できる。
ライセンスには、特許侵害訴訟からユーザーを保護する特許付与条項も含まれる。
The 2-Clause BSD License
著作権表示と保証または責任の放棄を記載する限り、ユーザーはソフトウェアを使用、コピー、変更、配布できまる。
The 3-Clause BSD License
2 条項BSDライセンスに似ているが、ソフトウェアの配布にライセンスと著作権通知のコピーを含めることをユーザーに義務付ける追加条項が含まれている。
このライセンスは、元の著者または貢献者に適切な帰属を保証し、クレジットを与えたいオープンソース ソフトウェア プロジェクトで使用される。
2: Use vs Exploit
OSSライセンスの「使用:Use」と「利用:Exploit」には明確な違いがある。
-
使用:OSSソフトを実行して動かす意味合い
-
利用:OSSを含む製品の提供、複製
OSSライセンスの場合、使用は自由だが、利用は各ライセンス条文を遵守して利用する必要がある。
3: Use Case
2: Use vs Exploitの使用と利用の違いをユースケースで記載。
P24-P26スライド参照
3.1: Product
量産する製品にOSSが含まれる場合、工場での量産で行われるSW書込は「OSSの複製利用」となりライセンス条文の対象となる。
そのため、工場などの量産側がOSSの危険性を理解しておくとともに、開発側もOSS利用製品が量産されることの損失を認識しておく必要がある。
3.2: SI/SIer
SI / SIerとしてOSSを構築システムに組み込んだ場合は「使用:Use」にあたる。(例外もあり)
一方で、システム構築したSW群を別システムへ横展開(共通化)する場合、OSSの「利用:Exploit」にあたるのでライセンス違反とならないように規約を遵守する必要がある。
3.3: Priority measures
施策・対策として、OSS管理ツールを利用し、混入を防ぐもしくは対策を事前検討しておく。
Black Duck(ブラックダック)などの管理ツールを使用し、SBOM:Software Bill of Materials(ソフトウェア部品表)を作成し可視化させるなど。
References
How Do Open Source Licenses Work? Permissive and Protective Software Licenses Explained
以上です。
Likeいただけると大変励みになりますので、よろしくお願いいたします。
Discussion