Next.jsなどのメタフレームワークを使用したサイトにOSSライセンス表記は必要なのか


[!WARNING] 本資料は参考情報の提供を目的としたものであり、オープンソースやライセンスに関する専門的な助言ではありません。内容の正確性・適法性についてはいかなる保証もいたしません。本資料の利用に起因して発生した損害や紛争(訴訟を含む)について、当方は一切の責任を負いかねます。

オープンソースソフトウェアを利用して自身のソフトウェアやアプリケーションを構築する場合、利用したオープンソースソフトウェアのライセンスは守る必要があります。 Web業界の場合、ほとんどのオープンソースソフトウェアが比較的制約の緩い MITライセンス だったりします。 しかし、だからといってライセンス条項を破っていいわけはないので、きちんと理解したいところです。

私の結論

Next.jsなどのOSSライセンスの表記は「不要」だと思います。

なぜなら、Next.jsやNuxt、Astroなどを使用して作られたWebサイトは、これらのツールを使用して「出力されたもの」であって、Next.jsなどのソフトウェアそのものではない(ソフトウェアの複製ではない)からです。 ユーザーにブラウザを通じて配布されているものは、それらのソフトウェアによって出力された(ビルドされた)HTML・CSS・JavaScriptです。

GCC(コンパイラ)でコンパイルして出力されたファイル(exeなど)を配布する時に、「GCCのライセンス」が適用されるわけではないですよね。 同じように、Next.jsでビルドして出力されたファイル(html, css, js)を配布1しても、それらに「Next.jsのライセンス」が適用されるわけではないというわけです。

私はこのように解釈しました。

Webでライセンスがあまり気にされないのはなぜか

そもそも、Webサイトで使用しているOSSライブラリの一覧やライセンスの一覧ページなどを用意しているサイトは、見つけようと思って軽くググっても見つからないぐらいには、まったく見かけません。 なぜこのような慣習になったのでしょうか。

これは、 Webというプラットフォームの特性が大きい のではと思います。

Webサイトは、HTML・CSS・JavaScriptで構成されています。 これらはすべて「テキストファイル」です。 C言語などのコンパイル言語とは違って、バイナリファイルになりません。 ソースコードをそのままWebサーバを通じて配布され、ユーザーはブラウザを通じてそれらをダウンロードします。

jQuery という有名なJavaScriptライブラリがあります。 このjQueryは jquery-3.7.1.js のような形でJavaScriptファイルがそのまま配布されています2

jQueryがよく使われていた頃のWebサイトでは、このようなライブラリをダウンロードして、自身のWebサーバに設置し、利用していました。 この場合、基本的にはダウンロードしてきたJavaScriptファイルを普通はそのまま乗せます。

すると、自動的にMITライセンスを満たせます。 なぜなら、jquery-3.7.1.js の先頭にコメントで著作権表記もライセンス表記も含まれているからです。

このように、当時のJavaScriptライブラリやCSSライブラリは、ダウンロードしたライブラリをそのままサーバに乗せるだけ、というものが多かったのです。 すると、ライブラリの一次配布の時点で適切なライセンス条項をライブラリ自体に含めていれば、それでそのまま「読める」ので、問題なかったのです。

Web技術を使用したスマートフォン向けアプリ

React Nativeなどを採用して作成したスマートフォンアプリの場合、使用しているライブラリの一覧やオープンソースライセンスリストを見られるようにしているアプリが多いです。

これはなぜかというと、「スマートフォンアプリでは簡単にソースコードを見られない」からだと思われます。

Webブラウザの場合、右クリックして「ソースを見る」などのアクションを実行すれば、簡単にソースコードを見られます。 簡単にソースコードを見られるので、先ほど例に挙げたjQueryなどのJavaScriptライブラリのソースコードも簡単に見られます。 よって、ライセンスも簡単に確認できるということです。

スマートフォンアプリの場合は「右クリックしてソースを見る」というような行動が取れない3ため、使用しているオープンソースリストを確認できる機能を付けているわけですね。

静的サイトジェネレータなどの場合

Next.jsやNuxt、Astroなどを利用して作られたWebサイトは、大量にあるでしょう4。このサイトもAstroで作っています。

しかし、それらのメタフレームワークを使用して作られたWebサイトで、フレームワークのオープンソースライセンス表記を掲載しているWebサイトは、見たことがありません。 掲載しているサイトももしかするとあるかもしれませんが、それらは私のように悩んで、でも分かんないから安全側に倒して載せているだけというケースがほとんどじゃないかなと推測します。

そもそもツール提供元が、ライセンス表記を載せる必要があると考えているのなら、そのように実装すべきでしょう。 HTMLなどを出力しているツール自身なのですから、ツール側がライセンス表記ごと出力するようにすればいいだけです。 そうすれば、jQueryの例と同じように、出てきたものをサーバに置いておくだけで、自動的にライセンスを守れますよね。

要するに、載せる必要がないから、出力していないのです。

総括

最初に書いたように、私はメタフレームワークのライセンス表記は載せる必要がないと解釈しました。

  1. ユーザーに配布されるのは、メタフレームワークが「出力したもの」であって、ソフトウェアの複製ではない
  2. ライセンス表記が必要、とメタフレームワーク制作者が考えているのであれば、出力するように作られているはず

この2点が根拠です。

ここまで読んでくださりありがとうございました。

Footnotes

  1. HTML・CSS・JavaScriptを「配布する」と書きましたが、ピンと来ないかもしれません。しかし、これらのファイルもexeファイルをダウンロードするのと同じように、サーバーからダウンロードしています。なので「配布」と表現しました。

  2. jquery-3.7.1.min.js というのもありますが、これはサイズ削減のために圧縮しているだけで、結局はバイナリではなくテキストです。

  3. そもそも普通にObjective-CやSwiftを使って作ったアプリの場合はバイナリファイルですし。

  4. State of JS 2024 で利用率トップ3のフレームワークです。