OSSライセンスについて学習した内容のまとめ（随時更新予定）


:::note warn
注意事項

本投稿はOSSライセンスについて個人で学習した内容を随時記事に載せていきます。
ライセンス関連のお話には、著作権や特許などの法律に触れる内容を含みます。実際に対処する場合、社内の法務部や有識者への相談を行うことをおすすめします。本記事はそういった有識者への相談前に、自身で予備知識を蓄える程度のものとなります。
:::

# 目的
各OSSライセンスについて調査し理解を深める。
（いきなりたくさんのライセンスについて調べて記事にしようとするとあと10年はかかるので、代表的なライセンスから始め、徐々に勉強し補完していきます。）

# 背景
今後、個人アプリのソースコードを公開しようと考えているが、利用しているOSSのライセンスについて、どう対処したら良いのかが具体的にわかっていなかったため、OSSのライセンスについて、理解を深めようと勉強を始めた。

# OSSとは
オープンソースソフトウェアの略です。
OSSとは、利用者の目的を問わずソースコードを使用、調査、再利用、修正、拡張、再頒布が可能なソフトウェアの総称です。
パソコンやスマホを利用していれば必ずといっていいほど使っている、身近なソフトウェアです。

https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2

# 関連用語

用語についてはライセンス側で定義を記述しているものも中にはあります。
ニュアンスが異なる可能性もあるため、ライセンス側で定義されている場合、その内容に従うようにしてください。

## 頒布（はんぷ）

頒布とは、ソフトウェアを広く配ることです。配布と表記する場合もありますが、ここでは同じ意味と扱って問題ありません。
本記事ではOSSを他の人に渡す行為を指します。また、頒布にて受領したOSSを再度頒布することを再頒布と言います。

https://ja.wikipedia.org/wiki/%E9%A0%92%E5%B8%83

:::note warn
頒布として扱われないケースもある
WEBAPIなど、ネットワーク経由の場合は、頒布と扱われない場合があります。
例えば、Webサーバがあったとして、サーバソフトにOSSであるApacheが使われているとします。単純にリクエストした文字列を返すエコーWEBAPIがあったとして、ユーザがリクエストを行い結果を受け取った場合、OSSを受け取っているわけではないため、頒布としては扱われません。

ですが、Webサーバに対してWebページのリクエストを行なった場合に、結果ページ中にJSのOSSが含まれていた場合は頒布として扱われるため注意が必要です。
:::

# ライセンス形態の大まかな種類
ライセンス形態の種類と概要を載せます。あくまで一般的なもので、中には細かな例外もあります。大まかな種類の概要として捉え、詳細は各OSSのライセンスを確認することが重要です。

無印コピーレフトから説明したいところですが、一番登場機会が多いと思われる非コピーレフトから順に説明するとします。

## 非コピーレフト
一般的には下記を守れば、制約なくOSSの改変や頒布が可能となります。
```
1. 利用するOSSの著作権表記
2. 利用するOSSのライセンス表記
```

- ライセンス代表例
  - MITライセンス
  - BSDライセンス

## 準コピーレフト
一般的には下記を守れば、制約なくOSSの改変や頒布が可能となります。
```
1. 利用するOSSの著作権表記
2. 利用するOSSのライセンス表記
3. 利用するOSSのソースコード公開（改変がある場合）
```

- ライセンス代表例
  - MPL

## コピーレフト
一番制約の強いライセンス形態です。
一般的には下記を守れば、制約なくOSSの改変や頒布が可能となります。
```
1. 利用するOSSの著作権表記
2. 利用するOSSのライセンス表記
3. 利用するOSSのソースコード公開（改変有無は問わない）
4. 利用するOSSの派生物（OSSを組み込んだ場合も含む）のソースコード公開
```

他にも、派生物に対し、利用するOSSオリジナルと同じライセンスを要求します。（GPL汚染と呼ばれたりします）

- ライセンス代表例
  - GPLライセンス
  - AGPLライセンス

# 非コピーレフト

:::note
最初のMITライセンスのみ、各段落について触れていきますが、以降は大幅な違いや重要な違いがない限りは省略とします。
:::

## MITライセンス

元はMIT（マサチューセッツ工科大学）が研究開発の成果を公開するために作られたライセンス形態です。
以下を条件に制約なくOSSの利用が許可されます。
- 著作権、許諾条件、免責事項についてソフトウェアの全ての複製、または、重要な部分に表記（ライセンスファイルの内容全て記載でOK）

https://ja.wikipedia.org/wiki/MIT_License

VSCodeのライセンスをすぐに見れたため、これを例にMITライセンスの規約を見ていきます。
```:ライセンス規約
MIT License

Copyright (c) 2015 - present Microsoft Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```

>Permission is hereby granted, 〜〜〜

ライセンス内容、許諾条件です。

要約すると、
`条件に従えば、本ソフトウェアおよび関連文書ファイルについて、無償での使用、コピー、変更、結合、出版、頒布、サブライセンス、販売が無制限に許可される。さらには、本ソフトウェアの再頒布を受けた人も同様の許可を得る権利がある。`
となります。

>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

許諾の条件です。

`著作権と許諾表記をソフトウェアの全ての複製、または、重要な部分に記載をしなければなりません。`
とあります。

:::note warn
免責事項の記載
文章的には、`著作権と許諾表記`で、許諾表記に免責事項が含まれるのか、文章にははっきりと記述がありませんが、許諾という意味としては**免責事項についても了承しなければいけない**と捉え、ライセンスファイルの内容を全て記載するのが良いと言えます。
:::

:::note
著作権と許諾表記の具体的な記載箇所の一例
アプリ内に表記する画面を作成しそこで表記する、Gitなどの構成管理内にファイルを作成しそこに表記する等があります。

後者はVSCode等で採られている方法です。参考にファイルへのリンクを掲載します。
https://github.com/microsoft/vscode/blob/main/ThirdPartyNotices.txt
:::

尚、MITライセンスについて、許諾表記は許諾内容が記述された場所へのURLを記述することも認められています。

>THE SOFTWARE IS PROVIDED 〜〜〜

免責事項です。

`ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証も含みますが、それに限定されるものではありません。 作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求、損害、その他の義務について何らの責任も負わないものとします。`
とあります。

OSS開発者側は、いかなる責任も負わないという内容です。

## BSDライセンス

＜更新内容＞
2022/08/17　2項型BSDライセンス　`製品の宣伝に著作権者や貢献者の名前を使用すること`について、条件がなくなったのではなく、「ベルヌ条約によって不要となる言い回し」を取り除いたという記述に修正　指摘コメント　https://qiita.com/shinya_sun_sun/items/bdafe803a7643e6dd15b#comment-7b27efe75e2c67c916cd

元はカリフォルニア大学バークレー校が研究開発したソフトウェア群を公開するために作られたライセンス形態です。
BSDライセンスには4項型、3項型、2項型があります。

https://ja.wikipedia.org/wiki/BSD%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9

<!--
BSDライセンスは4項のライセンス条件を持っている4項型、4項型から項を削った3項型、2項型があります。
先に各ライセンスを整理した表を掲載します。詳細は以降に説明します。
-->

<!--
| 項型 | 著作権表記 | 許諾条件表記 | 免責事項表記 | 開発者への謝辞 | 製品の宣伝に著作権者や貢献者の名前を使用 |
|:-:|:-:|:-:|:-:|:-:|:-:|
|  4項型 | 必須  | 必須  | 必須  | 必須  | 不可 |
|  3項型 | 必須  | 必須  | 必須  | **不要**  | 不可 |
|  2項型 | 必須  | 必須  | 必須  | **不要**  | **可** |
-->

### 4項型BSDライセンス

4項型BSDライセンスは4項のライセンス条件を持っているライセンス形態です。
<!--著作権、許諾条件、免責事項、開発者への謝辞が表記され、かつ、ソフトウェアを含む製品の宣伝に著作権者や貢献者の名前を使用しないことを条件に、制約なくOSSの改変や頒布が可能となります。-->

以下を条件に制約なくOSSの利用が許可されます。
- 著作権、許諾条件、免責事項についてソフトウェアの全ての複製、または、重要な部分に表記（ライセンスファイルの内容全て記載でOK）
- 開発者への謝辞をソフトウェアの機能または使用方法について言及したすべての告知物に表記
- ソフトウェアを含む製品の宣伝に著作権者や貢献者の名前を使用しないこと（必要な場合は事前に書面による特別な許可を得ること）

wikiに掲載されていたライセンス規約（旧BSDライセンス・四条項BSDライセンスの章）を下記に転記します。
```:ライセンス規約
Copyright (c) <year>, <copyright holder>
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
   this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
   must display the following acknowledgement:
   This product includes software developed by the <organization>.
4. Neither the name of the <organization> nor the names of its contributors
   may be used to endorse or promote products derived from this software
   without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ''AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
```

>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

ライセンス内容、許諾条件です。

`次の条件が満たされている場合、ソースおよびバイナリ形式での再配布および利用は、変更の有無に関わらず許可されます。`
とあります。

`次の条件`が指し示すのは、次の1,2,3,4と項番が振られている記述です。

>1.Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
>2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

1.はソースコードの再頒布について、2.はバイナリ形式での再頒布についてです。

`1. ソースコードを再頒布する場合は、上記の著作権表示、本条件の一覧、および以下の免責事項を保持する必要があります。`
`2. バイナリ形式で再配布する場合は、上記の著作権表示、本条件の一覧、および以下の免責事項を頒布物と共に提供される文書、かつ（または）、その他資料に再掲し保持する必要があります。`
とあります。

要するに、型式に問わず、著作権表示、本条件の一覧、および以下の免責事項を表記しなさいということです。
1.については保持する場所を明確に指定されてはいませんが、MITライセンスと同様、`ソフトウェアの全ての複製、または、重要な部分`で問題ないと思われます。

>3.All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the `<organization>`.

開発者への謝辞についてです。

`本ソフトウェアの機能または使用方法について言及したすべての告知物には、以下の謝辞を表示する必要があります。「本製品には、<組織>によって開発されたソフトウェアが含まれています。」`
とあります。

4項型には、上記の通り派生物の告知物に初期開発者を表示すること（宣伝条項）が条件として盛り込まれています。
しかし、この宣伝条項が存在することにより、GPLとの両立ができなくなります。

GPLは2次的な著作物のライセンスにGPLより厳しい制限をつけ加えることを禁止しており、BSDの宣伝条項はGPLから見てさらなる制限となるためです。これを解消するために次項にて説明する3項型が生まれました。

>4.Neither the name of the <organization> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

派生物の宣伝についてです。

`事前に書面による特別な許可を得ずに、<組織>の名前およびその貢献者の名前を、このソフトウェアから派生した製品の推奨または販売促進のために使用することはできません。`
とあります。

文章の通りとなりますが、事前に書面による特別な許可を得ずに、ソフトウェアを含む製品の宣伝に著作権者や貢献者の名前を使用することはできないとあります。

### 3項型BSDライセンス

3項型BSDライセンスは3項のライセンス条件を持っているライセンス形態です。

以下を条件に制約なくOSSの利用が許可されます。
- 著作権、許諾条件、免責事項についてソフトウェアの全ての複製、または、重要な部分に表記（ライセンスファイルの内容全て記載でOK）
- ソフトウェアを含む製品の宣伝に著作権者や貢献者の名前を使用しないこと（必要な場合は事前に書面による特別な許可を得ること）

4項型BSDライセンスとの違いは`開発者への謝辞`の条件がないことです。
それ以外については4項型と同様となるため割愛とさせていただきます。

### 2項型BSDライセンス

2項型BSDライセンスは2項のライセンス条件を持っているライセンス形態です。

以下を条件に制約なくOSSの利用が許可されます。
- 著作権、許諾条件、免責事項についてソフトウェアの全ての複製、または、重要な部分に表記（ライセンスファイルの内容全て記載でOK）

3項型BSDライセンスとの違いは`事前に書面による特別な許可を得ずに、ソフトウェアを含む製品の宣伝に著作権者や貢献者の名前を使用することはできない`の**条件の明記**がないことです。
上記についてはコメントでもご指摘がある通り、2項型BSDライセンスに対する説明に`「ベルヌ条約によって不要となる言い回し」を取り除いた`とあるのみで、条件が削除されたという意味ではないようです。

ISCライセンスに対する記述となりますが、参考箇所を掲載します。

https://ja.wikipedia.org/wiki/ISC%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9

>「ベルヌ条約によって不要となる言い回し」を取り除いた2条項BSDライセンス

下記を引用しています。

http://www.openbsd.org/policy.html

>The ISC copyright is functionally equivalent to a two-term BSD copyright with language removed that is made unnecessary by the Berne convention.

それ以外については3項型と同様となるため割愛とさせていただきます。

## Apache-2.0ライセンス

著作権の絡みとライセンス意図を理解できていないため学習中。

<!--
## CCライセンス

不明点があるので直接公式に問い合わせ中。
-->

## ISCライセンス

ISCライセンスは、Internet Systems Consortium (ISC) によって作成されたソフトウェア再頒布要件が最小限のライセンスのひとつです。2項型BSDライセンスと機能上同等となります。
以下を条件に制約なくOSSの利用が許可されます。
- 著作権、許諾条件、免責事項についてソフトウェアの全ての複製、または、重要な部分に表記（ライセンスファイルの内容全て記載でOK）

https://ja.wikipedia.org/wiki/ISC%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9#:~:text=ISC%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9%20(%E8%8B%B1%3A%20ISC%20license,%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9%E3%81%AE%E3%81%B2%E3%81%A8%E3%81%A4%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82&text=Internet%20Systems%20Consortium%20(ISC)%20%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6,%E6%A9%9F%E8%83%BD%E4%B8%8A%E5%90%8C%E7%AD%89%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82

```:ライセンス規約
ISC License (ISC)
Copyright <YEAR> <OWNER>

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
```

>Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

ライセンス内容、許諾条件です。

`本ソフトウェアを使用、複製、改変、頒布することを、その目的の如何を問わず許可する。本ソフトウェアは、上記の著作権表示と本許諾表示をすべての複製物に表示することを条件に、有償・無償を問わず使用することを許諾します。`
とあります。

# 準コピーレフト

該当するライセンスを現状利用していない（またはデュアルライセンスで選択しなかった）ため、学習後にアップデートします。

# コピーレフト

該当するライセンスを現状利用していない（またはデュアルライセンスで選択しなかった）ため、学習後にアップデートします。

# 最後に

今となってはソフトウェアの開発に不可欠なOSSのライセンスを理解することが、とても重要であることがわかった。

今まではOSSの導入や規約の遵守は他のメンバーがやっていたため、あまり深い理解をしてこなかったが、OSSを扱う上では一人一人がちゃんと理解し意識しなければいけないものだということがよく分かった。
ライセンスをよく知れば、システム開発時の制約や、ライセンス規約によるシステム構成の制約に対する考慮もできるため、勉強してよかったと思った（過去形ではなくこれからも）。

今後、自身の作成したアプリのソースコードを公開しようと考えているが、当初はライセンスごとで何をしなければいけないかという、答えだけを求めて対処し公開しようとしていた。1つ1つ調べるのは大変手間で時間のかかることではあるが、キチンと調べ、それをアウトプットし知識の定着を行うことで、OSS作者の意図・背景への理解や、完璧とまではいかないが、再調査などの手戻りも少なく進めれるのだと思う。
最初は回り道だと思っていても、結果を見れば最短ルートであったと、リリースした際には思うであろうと信じ継続し学習したい。