MITライセンスって何なのさ

## 背景
最近、完全に趣味の延長でWebサイト作成しました。ほいでそのサイトをインターネットに公開しようと思ったんですが、ちょいとばかり疑問が生じました。当WebサイトではいくつかOSSを利用しているのですが、

「ん？OSSって勝手に利用していいんだっけ？」

ちょこちょこ耳にする**ライセンス**ってやつに深くかかわるヤツですね。自分が作成したものを公にすることが今までほとんどなかったので、正直あまり深く考えたことがなかったのです。

OSSを利用するにあたってやらねばならぬことがあったような…？
「勝手に使っていいけど、これらは守ってくれよな」的なものがあるんじゃなかったかしら？


そのあたりを怠ったせいで、権利者の人に訴えられたりして、ものすごい額の賠償金を取られたりしたら…？
一介のサラリーマンである自分には、想像するだけでゾッとします。。。**家族が途方に暮れること**は避けなければならぬのです。

そんなわけで、自分が公開するWebサイトでOSSのJSやCSSを利用する際、何をする必要があるかを調べてみました。

## そもそもOSSって？
軽く確認しておくと OSS ってのは、「Open Source Software」のことです。
今回公開するWebサイトでいうと、自分はデザイン周りは絶望的にセンスがないのでCSSフレームワークである「Bulma」を利用しているんですが、これがまさにOSSというものですね。
IT用語辞典 e-Words には以下のように明記されておりました。
> オープンソースとは、人間が理解しやすいプログラミング言語で書かれたコンピュータプログラムであるソースコードを広く一般に公開し、誰でも自由に扱ってよいとする考え方。また、そのような考えに基づいて公開されたソフトウェアのこと。

> オープンソースとして公開されたソフトウェアは、その全体をインターネットなどを通じて簡単に入手できるよう公開され、誰でも無償で自由に使用、複製、改変、再配布、自ら開発したプログラムへの組み込みなどを行なうことができる。

ふむふむ。これを見るかぎりやっぱり自由に使っていいぽいですね。ただし、以下のようにも書いてありました。
> ただし、利用条件や制約、利用者の義務などが一切ないわけではなく、「オープンソースライセンス」（open source license）と総称される利用許諾契約に基いて公開されるのが普通である。

やはり利用者側には義務があるらしいです。これがまさに今回知りたいことなわけです。

## MITライセンスとは？
今回自分が利用するOSSの1つである「Bulma」の公式ページを確認すると、ライセンスが"MITライセンス"である記述がありました。
[Source code licensed MIT.](https://bulma.io/#:~:text=source%20code%20licensed%20mit.)
有名どころだと、「Vue」や「jQuery」なんかもMITライセンスです。

この「MITライセンス」の概要（マサチューセッツ工科大学で作成された云々）については、たくさん情報があって表現も難しいことが多く眠くなってしまうのですが、Wikipedia 先生に要約がありました。助かります。
> 要約すると、MIT Licenseとは次のようなライセンスである。
このソフトウェアを誰でも無償で無制限に扱って良い。ただし、著作権表示および本許諾表示をソフトウェアのすべての複製または重要な部分に記載しなければならない。
作者または著作権者は、ソフトウェアに関してなんら責任を負わない。

この要約とネットで調べた情報をまとめると、
* 商用・非商用問わず誰でも好きに使っていいよ
* そのままでも、一部を改変して再配布してもいいよ
* 使うときは、「著作権表示」と「MITライセンスの全文」を記載してね
* ソフトウェアを利用したことによる責任は取らないよ

ということだと理解しました。うん、わかりやすい。そしてとっても~~ゆるい~~寛容。


### やるべきことは「著作権表示」と「MITライセンスの全文」の記載
つまり、OSSの利用者は「著作権表示」と「MITライセンスの全文」を表示すればいいのですね。承知しました。
では具体的に何をどうすればいいんでしょか？

## 実際にやること
今回、自分の公開するWebサイトでのOSSの利用形態は以下のとおりです。
* 公式からダウンロードしたCSS、JSファイルをそのまま利用する
* バンドルもミニファイもせず、\<script\>タグや\<link\>タグでオリジナルのファイルを読み込んで利用する
* CDNは利用せずに、自サーバーにCSS・JSファイルを配置する

この場合、元ファイルをそのまま利用しているので「改変」はしていませんが、自分のサーバーにアップロードし、外部から参照・アクセス可能な状態にしているので、「再配布」には該当するようです。

### 著作権表示
著作権表示の方法ですが、オリジナルのソースコード内に著作権表示が含まれていることがほとんどのようです。例えばjQueryでは、以下の記述がありました。
```javascript:jquery-3.7.1.js
/*!
 * jQuery JavaScript Library v3.7.1
 * https://jquery.com/
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license
 * https://jquery.org/license
 *
 * Date: 2023-08-28T13:37Z
 */
```
オリジナルのファイルを改変せずにそのまま利用する今回のケースでは、この記述も当然そのまま残りますので、**追加で何か記述する必要はありません**。おー。
改変して利用する際も、この記述をそのまま残しさえすればライセンスの要件を満たすことができます。
この場合は、改変した部分について（自身が著作権を持つ場合は）、それに関する著作権表示を追加することが一般的とのことです。

また、CSSやJSをバンドルやミニファイをする場合は、コメントが削除されるのでこれらの記述も削除されてしまう心配がありますが、通常ミニファイツールは「/*!」で始まるコメントを「重要なコメント」とみなし、これを削除しない設定になっていることが多いので、そこまで心配する必要はなさそうです。これは正直知らんかったです。ちゃんと考えられてるんだなー（棒）

### MITライセンスの全文
MITライセンスについても、基本は著作権表示と同様で、ソースコード内に記載されているのが一般的だそうです。
また記載方法ですが、「MIT ライセンスの全文」の代わりに、「MITライセンスの全文が記載されているページURLを記載する」でもよいとされています。

さきほどのjQueryの例だと、コード内にはライセンスに関するページのURLのみが記載されていて、そのページ内にMITライセンス全文へのリンクがあるようでした。
[Projects referencing this document are released under the terms of the MIT license.](https://jquery.org/license/#:~:text=projects%20referencing%20this%20document%20are%20released%20under%20the%20terms%20of%20the%20mit%20license.)

ちなみにBulmaの例だと、CSS内には以下のような記載があります。
```css:bulma.css
/*! bulma.io v0.9.4 | MIT License | github.com/jgthms/bulma */
```
記載されているのはGitHubのリポジトリのURLです。そのリポジトリ内に「LICENSE」ファイルが存在し、ライセンス全文を確認することができます。

多少の違いはあれど、どちらも **「最終的にライセンスの全文にアクセスできること」** が共通しています。
ライセンス全文については、リンクを辿ってアクセスできるのであれば、必ずしもコード内に本文や本文への直リンクが記載されている必要はないようです。（という風に解釈しましたが、誤っている場合はご指摘をお願いします。。。）

### 表示方法いろいろ
著作権やライセンス表示については「ソースコード内に記載する」が最も一般的ですが、他にもいろいろとやり方はあるようです。
* ウェブページ上に表示
* 別のドキュメントとして公開
* 非表示のメタデータとして保持

今回のようにソースコード内にこれらが記載されている場合でも、サイトの透明性やOSS提供者へのリスペクトとして、サイト内に「利用技術」や「クレジット」のセクションを設けて、使用しているOSS情報を明示するのは良いプラクティスになっているとのことです。なるほど。

## まとめ
* MITライセンスのOSSを利用する場合に、利用者としてやらなければならないことは、**「著作権表示」** と **「MITライセンスの全文表示」** の2つ。
* JSやCSSなど、改変せずにそのまま利用する場合、上記2つは**ソースコード内に記載されている**ことが一般的なので、特別に何かをする必要はない。
* バンドルやミニファイをする場合は、ソースコード内のそれらの記述を削除しないように注意

MITライセンスのOSSを利用する上で、利用者がやらなければならないことを調べてみました。結果的には何もしなくて良いということでしたが。
他にもオープンソースライセンスはたくさんあるので、使う際はちゃあんと調べてルールを破らないようにしないといかんですね…
皆で使うモノなんだからルールを守って楽しく使おうねってことですかね。
OSS提供者、作成者、コントリビューターの皆様に最大限の敬意を表して、終わりにしまっす！

ありがとうございました。

## 参考

[オープンソース（OSS）とは - 意味をわかりやすく - IT用語辞典 e-Words](https://e-words.jp/w/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9.html)
[MIT License - Wikipedia](https://ja.wikipedia.org/wiki/MIT_License)
[自由度の高い MIT ライセンスの概要と他ライセンスとの比較 | yamory Blog](https://yamory.io/blog/about-mit-License/)