ZFS採用の経緯とライセンス
ZFS採用の経緯とライセンスに関する紹介です。つい先日Petter Reinholdtsen氏がブログを更新し、DebianでZFSが利用可能になるとの記事を公開した。(※1)
多くの人々がDebianでZFSをサポートするため、長年懸命な努力をしてきた。
我々は努力をしてきたすべての人々に感謝したい。
DebianのアーカイブにZFSを採用することは、数年もの間ライセンスの問題により妨げられてきた。
今から1年ちょっと前、当時のDebianのプロジェクトリーダー(Debian Project Leader/DPL)であるLucas Nussbaum氏から、DebianでZFSを含める件に関しアナウンスが行われた。
Lucas Nussbaum氏は(※2)のように述べている。
今年の1月、DPLの方針に従いNeil McGovern氏がブログを更新し、法的状況の背景についてより詳しい情報や要約を公開した。
厳密に言えば、ZFSはDebianで有効ではない。
Debianは「main」セクションに配置されているアーカイブからのみ構成されるためである。
つまりZFSのソースコードは「contrib」セクションに配置され、ユーザーはDKMSを利用することでZFSが利用可能になるということだ。(追加ソフトという扱い)
多くの人々はDebianとUbuntuのZFSの提供方法を混同してこの状況を見ていただろう。
しかし、DebianとUbuntuのZFSの提供方法は異なる。
Ubuntuはビルド済みのZFSのカーネルモジュールを直接ユーザーに提供している。
Ubuntuの提供方法は、GPL違反だと考えられている。
Debianの提供方法は、Software Freedom Conservancyから賛成するとの助言を得ている。(※3)
- Debian now with ZFS on Linux included(2016/5/12)(※1)
本日、多くの人々の長年の懸命な努力により、ついにZFS for LinuxがDebianに入った。
パッケージの状態は、Debian Package TrackerとTeam status pageで確認できる。
もしあなたがこの作業を手伝えるのなら、このプロジェクトに加わってください。
ソースコードはAliothでホストしており、git経由で入手できる。
また、DKMSパッケージの作業を手伝ってもらえると有り難い。
DKMSはZFSを動作させるための重要なパズルのピースである。
- (My last) bits from the DPL(2015/4/16)(※2)
DebianにlibdvdcssとZFSを含める件に関し、Software Freedom Law Center(SFLC)から法的助言をもらった。
libdvdcssもZFSもDebianで配布することに問題はないとの見解を得た。
Debianでまもなくそれらのソフトウェアを提供できるようになる。
- Is The Analysis Different With Source-Only Distribution?(2016/2/25)(※3)
DebianのZFSのソースコードを「contrib」に配置するという決定は、これらのライセンスの問題に対する革新的な解決方法だ。
Debianは幸いにも、長きに渡るポリシーに基づく「contrib」がある。
「contrib」では、Debianフリーソフトウェアガイドラインに適合するが、ユーザーにとってデフォルトで使用するにはライセンス上の問題を起こしかねないソースコードを配置できる設計になっている。
Debianコミュニティーは「main」アーカイブの外にZFSのソースコードを配置することで、ユーザーにそれらのソースコードの使用にライセンス上の問題や疑念が発生しうることを明示する。
DebianとUbuntuのZFSの扱い
上記でも記述した通り、DebianとUbuntuでは、ZFSの提供方法が異なります。大きく異なる点は、誰がZFSのカーネルモジュールをビルドするのか、誰がZFSのカーネルモジュールを提供するのか、という点です。
Debian
Debianは、ユーザーにZFSのカーネルモジュールをビルドするための環境を提供します。つまり、ZFSのソースコードとZFSをビルドするための仕組み(DKMS)を提供します。
Debianは、ZFSのカーネルモジュールを提供しません。
従って、ユーザーがユーザーの環境でZFSのカーネルモジュールをビルドすることになります。
ユーザーから見ればビルド自体はDKMSによって行われるため、ZFSの導入自体は簡単です。
パッケージをインストールするだけで自動的にビルドが行われるでしょう。
Linuxカーネルの更新に合わせてZFSのカーネルモジュールをビルドし直す必要がありますが、これもDKMSが自動的に行ってくれます。
ちなみにこの方法は、以前Ubuntuが採用していた方法です。
Ubuntu
Ubuntuは、ユーザーにZFSのカーネルモジュールを直接提供します。ユーザーはZFSのカーネルモジュールをビルドする必要がありません。
Ubuntuをインストールすれば、ZFSのカーネルモジュールがすでに利用できる状態になっています。
(利用するかどうかはユーザー次第)
従って、Ubuntu側でZFSのカーネルモジュールをビルドし、UbuntuがZFSのカーネルモジュールを提供します。
ZFSのカーネルモジュールは、Linuxカーネルのパッケージに含まれています。
デフォルトでインストールされています。
ZFSのカーネルモジュールはデフォルトでインストールされていますが、デフォルトで読み込まれていないため、ZFSを使用するユーザーはZFSのカーネルモジュールをロードする必要があります。