Webサービスの開発で高い生産性を発揮するという「Ruby on Rails」。このRailsで作成したWebサービスは、どのようなライセンスになるか知っていますか?
それを理解するには、Railsが、どのようなライセンスで配布されているのか、確認する必要があります。
そこで、前回の「jQueryのライセンス解説」に続いて、Ruby on Railsのライセンスについて調べてみました。と言っても、最初からMITライセンスだけが適用されていて、まったく変化していませんでしたが、意外な事実を知ることができました。
MITライセンスについては、「自作ソースコードに、MITライセンスを適用する3つのやり方」でも説明しています。
最初に結論を述べると・・・
Railsは、MITライセンスで提供されています。
しかし、RubyGemで配布されているRailsには、MITライセンス文書が含まれていませんでした。Readme.mdに、適用ライセンスに関する記述があり、OSIのMITライセンスページへのリンクがありましたが、ライセンス文書自体は、見つけられませんでした。
また、Railsで生成されたWebアプリケーションの中にも、MITライセンス文書は、私には見つけられませんでした。
MITライセンスでは、適用されたOSSに、「著作権表示および本許諾表示を、ソフトウェアのすべての複製または重要な部分に記載する」ことを求めています。
そのために、Railsで開発されたWebアプリケーションを配布したり、お客様に納入する場合には、MITライセンス文書を自分で同梱したり、重要な部分に記載する必要があると思います。
ライセンスの確認手順
私の場合、ライセンスは、大体こんな順番で地道にチェックしていきます。今回も、この順番で確認していきます。実際に、ソースコードを開発に使うのであれば、配布ファイル自体についてライセンスのチェックが不可欠でしょう。
- 解説サイトでチェックする
- 公式サイトでチェックする
- 配布ファイルでチェックする
- ソースコードでチェックする
解説ページでチェックする
さて、ライセンスをチェックする一番手軽な方法は、Web上の各種解説ページで、ライセンスを確認することです。主要なOSSであれば、Googleなどで検索すれば、すぐに解説ページが見つかりますし、日本語で確認できるので、お手軽ですね。
たとえば、Wikipediaの各種OSSページでは、右サイドのサマリーエリアにライセンスの種別を記載しています。Ruby on Railsの場合は、「MITライセンス」だと書いてあります。
なお、OSSの種類や解説ページの更新情報によっては注意が必要です。Railsのライセンスは特に変更はありませんでしたが、jQueryの場合は、バージョン1.8以降、MITライセンスとGPL2のデュアルライセンスからMITライセンス単独に変更されています。古い解説記事では、この変化に追従していない可能性があります。
公式サイトでチェックする
続いて、Railsの公式サイトで確認してみましょう。
ここでは、トップページのフッター部分に次の記載がありますね。
Rails is released under the MIT license. Ruby under the Ruby License.
そして、「MIT license」の部分は、オープンソースイニシアチブの「MITライセンス」ページにリンクしています。
というわけで、Railsのライセンスは、MITライセンスでいいようです。
ただし、このフッター部分ですが、ライセンス表示の上に、トレードマークに関する次のような記載があります。
“Rails”, “Ruby on Rails”, and the Rails logo are registered trademarks of David Heinemeier Hansson. All rights reserved.
私なりに翻訳してみると、
“Rails”および”Ruby on Rails”と、Railsロゴは、David Heinemeier Hanssonによる登録商標で、すべての権利を有しています。
となっています。
Rails自体は、MITライセンスにもとづくオープンソースライセンスですが、「Rails」「Ruby on Rails」という名称とRailsのロゴは、登録商標なのでソースコードと同じ条件では利用できないのです。
配布ファイルでチェックする(その1)
さて、自分が使っているバージョンのRailsのライセンスは、これだけでは分かりません。やはり、配布ファイルで、自分が使うコードのライセンスに関する記載を確認してみましょう。
そのために、手元のWindowsマシンにgemを使って、Rails4.0をインストールしてみました。参考までに、導入手順はコチラ。
Railsは、Ruby言語用のパッケージ管理システムであるRubyGemsで配布されています。ここで「Rails」を検索すると、最新バージョンとしてバージョン4.0.1が配布されていました。
さて、gemでインストールするとRails本体は、下記のフォルダに格納されます。
C:\(インストール先)\lib\ruby\gems\2.0.0\gems\rails-4.0.1
ここに「README.md」という説明文があって、この末尾に下記のようにライセンスが記載されています。
## License
Ruby on Rails is released under the [MIT License](http://www.opensource.org/licenses/MIT).
これは、公式サイトのフッター部分と、ほぼ同じ内容ですね。
ただし、この配布ファイルには、MITライセンスのライセンス文書が含まれていませんでした。うーむ。
配布ファイルでチェックする(その2)
さて、配布ファイルであるRubyGemsの中を「license」で検索すると、下記の「license.html.erb」ファイルに
C:\(インストール先)\lib\ruby\gems\2.0.0\gems\rails-4.0.1\guides\source\_license.html.erb
次のような、サイトのフッター部分のhtmlコードが記載されています。
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License
“Rails”, “Ruby on Rails”, and the Rails logo are trademarks of David Heinemeier Hansson. All rights reserved.
これは、Railsで作成したWebサイトのライセンス表示ページに使用されるhtmlの断片だと思います。このサイトが、クリエイティブ・コモンズ(CC-BY-SA 3.0:表示 – 継承)で提供されるとしています。
ただし、初歩的なRailsアプリを作ってみたところ、ここで表示されるテキストは含まれていませんでしたし、Railsの著作権表示やMITライセンスのライセンス文書も含まれていませんでした。
追記:コメントで指摘いただきました。ありがとうございました。
guides以下のファイルはRailsそのものではなく、 http://guides.rubyonrails.org/ に置かれているファイルと同じもののはずです。開発と執筆の都合で同じレポジトリに置かれることになった、みたいな話があったような。
配布ファイルでチェックする(その3)
Railsには、jQuelyとSyntaxHighlighterが同梱されています。どちらも、下記のフォルダに配置されています。
C:\(インストール先)\lib\ruby\gems\2.0.0\gems\rails-4.0.1\guides\assets\javascripts
このうちjQuelyは、「jquery.min.js」が同梱されています。これは、ソースコードの冒頭に「/*! jQuery v1.7.2 jquery.com | jquery.org/license */」とだけ、書いてあり、「https://jquery.org/license/」を見に行くと、MITライセンスだということが分かります。
SyntaxHighlighterは、ソースコードの構文を強調表示するためのJavascriptコードです(http://alexgorbatchev.com/SyntaxHighlighter/)。Railsには、複数のファイルが同梱されており、コードの冒頭に記述があります。
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
この記述で、SyntaxHighlighter自体は、MITライセンスとGPLのデュアルライセンスだということが分かります。ただし、Rails配布ファイルには、MITライセンスもGPLも、ライセンス文書が含まれていませんでした。
ソースコードでチェックする
念には念を入れて、ネット上で公開されている開発中のソースコードでも、確認してみました。Railsの開発中のソースコードは、Githubで公開されています。
ライセンスに関する説明は、トップフォルダの「README.md」に、配布ファイルと同じライセンスの記述がありました。
MITライセンスのライセンス文書は、「railties」フォルダにありました。
ただし、Railtiesは、Railsのコアライブラリのひとつで、RubyGemsでは、Rails本体ではなく、Railsの関連ファイルとして配布されています。
という訳で、Rails自体には、MITライセンスのライセンス文書が含まれていませんし、配布もされていないってことだと思います。
Railsで作成したWebアプリのライセンスは、どうなるのか?
MITライセンスが適用されたRailsを利用して、Webサービスを作ったら、そのライセンスはどうなるのでしょうか。先ほどのhtmlコードの断片のように、クリエイティブ・コモンズを適用しなければ、ならないのでしょうか。
MITライセンス自体は、「著作権表示および本許諾表示を、ソフトウェアのすべての複製または重要な部分に記載する」ことを求めると共に、対象となるソフトウェアが無保証だと宣言しています。
これを守りさえすれば、ソフトウェアのライセンスを変更して構いません。商用ライセンスにしても構いませんし、GPLにしても問題ありません。
たとえば、Railsで開発されたWebベースのプロジェクト管理ツールであるRedmineは、GPL2が適用されています(http://www.redmine.org/)。クレオネットワークスが開発・販売している企業向け業務プロセス管理ツールBizPlatform(私のシゴト先ですが)の場合、商用ソフトウェアとして、SaaS版とオンプレミス版を提供しています。
Railsで開発されたWebアプリは、Rails自体のコードの断片を含んでいるので、MITライセンスに基づいて配布する必要があるでしょう。すなわち、「著作権表示および本許諾表示を、ソフトウェアのすべての複製または重要な部分に記載」しなければなりません。
Rails自体は、これをしないようなので、開発者が自分で記載する必要があると思います。
—-
MITライセンスで提供されるWebフレームワークについて、これが問題視されるとは、私は思いません。ただし、企業活動としてライセンスの求める条項を尊守するのなら、きちんと対応しておくことが不可欠でしょう。
以上、Railsのライセンスについて、重箱の隅をつつくような話をしてみました。Railsの普及にともなって、こういったマメなチェックも、もっと欠かせなくなるかも知れませんね。
皆さんのお役に立てば幸いです。
Debianでも配布前にファイル単位でのライセンスを確認していて、以下でみられます。
http://ftp-master.metadata.debian.org/changelogs/main/r/rails-4.0/unstable_copyright
Debianのcopyright情報も参考になるのではないでしょうか。
knok さん
コメントありがとうございました。
とても、参考になりました。
さすが、Debianだと思いました。
このように、Debianが配布しているソフトウェアのライセンスを調べるには、
どのようにすればいいのか、
ぜひ知りたいです。
Twitterにて@ikunyaさんより、アドバイスをいただきました。ありがとう。https://twitter.com/ikunya/status/404646618227408896 >http://www.debian.org/distrib/packages でパッケージ単位で調べられますよ、という話でしょうかね……。例えばこれ packages.debian.org/wheezy/libreoffice だとすると、右側の「著作権ファイル」をクリックしてください。
guides以下のファイルはRailsそのものではなく、 http://guides.rubyonrails.org/ に置かれているファイルと同じもののはずです。開発と執筆の都合で同じレポジトリに置かれることになった、みたいな話があったような。
Railsはある意味単なるメタパッケージみたいなもので、Railsの本体はrailtiesや、ActiveRecord/ActiveModel/ActionMailer/ActionPackなどの各ライブラリの集合体を意味している、ということなのかもしれません(そして各ライブラリの方にはそれぞれMIT-LICENSEファイルが置かれています)。
takahashimさん、
コメントありがとうございました。
>Railsはある意味単なるメタパッケージみたいなもの・・・Railsの本体は、各ライブラリの集合体を意味している
なるほど、確かにそういう構成なのかも知れません。
gemによるRailsのインストール前後を比較して、Rails独自のライブラリを判別すれば検証できそうです。
しかし、そういう構成だとしたら、Railsによる生成物には、何のライセンスも適用されない、という解釈もあるのか・・・うーむ。