#自己紹介
本記事を担当することとなりました、ynuma と申します。
初投稿となりますので、簡単に自己紹介させていただきます。
現在はフリーで働いておりまして、一応ソフトウェアエンジニアの端くれではありますが、業務内容は ハードウェア の評価を担当する事が多いです。
ソフトウェアライセンスの分野については、以前から興味はあったのですが、普段接する機会も少ないので知識が乏しく、機会があれば勉強してみたいと思っておりました。
そんな折、仕事仲間のhermit4が「Qtのライセンスについて調べる」といっていたので、「これは!!」と思い、お願いして代わりに調べて記事を書かせてもらうこととなりました。
誤り等も多いかと思いますが、色々ご指摘をいただいて、記事をバージョンアップできればと思いますので、ご協力の程をよろしくお願いします。
#Qt License の概要
はじめに、Qt の License がどんなものなのかを簡単に説明します。
Qtのライセンスを簡単に分類すると、以下の2つになります。
- Qt Commercial License(有償の商用ライセンス)
- Qt Open Source License
Qt Projectのサイトを見ると、これをまとめて "Dual-Licensing" と呼んでいるようです。
どちらを使うかは、基本的にはユーザーが選択可能となっています。
#今回扱うテーマについて
今回はQt Open Source License の方をテーマにします。
その理由ですが、昨日リリースされた Qt 5.4 で一部 Open Source License の適用が変わるためです。
特に、LGPLv3はこれまで使われていませんでしたので、そちらの説明を重点的にさせていただきます。
Qt Commercial License については従来通りであるようなので、割愛させていただきます。
詳細を知りたい方は、ページ下部のQt Projectのリンクを参考にしてください。
Qt Open Source License
Open Source Licenseは、さらに以下の二つのライセンスの選択式となっていました。
- GPL v3
- LGPL v2.1+ Nokia Qt LGPL Exception version 1.0
詳しくは、過去に hermit4 氏がまとめた下記記事が参考になります。
今回、5.4 で追加される Qt WebEngine および今後追加が予定されている Qt Canvas3D と Qt WebView、Qt Quick Controls on Android モジュールには、
- LGPL v3
が適用されるそうです。
LGPL v3 はこれまでのライセンスと何が違うのでしょうか?
#GPL
まずは、私と同じ初心者の方もいらっしゃると思いますので、GPLについて簡単にまとめます。
GPLは、GNUプロジェクトのためにリチャード・ストールマン氏により作成されたフリーソフトウェアライセンスです。
GPLは、ソフトウェアおよびその他の著作物について、GNU のフリーかつコピーレフト(次パラグラフ参照)の理念に基づいたライセンスです。
ソフトウェアやその他の実用的な著作物を対象とするライセンスの大半は、著作物を多くの者で共有したり著作物を変更する自由を奪い去るように作られています。これに対して、GPLは,プログラムの全てのバージョンを共有し変更できる自由を保証すること、すなわち、ソフトウェアがユーザ全てにとってフリーであり続けることを保証することを目的としています。
#GNUの理念
GNUが理念に掲げる自由ソフトウェアは、以下の通りです。
「自由ソフトウェアは利用者が4つの必須の自由を有することを意味します: (0) プログラムを実行する、(1) ソースコード形式でプログラムを研究し変更する、(2) そのままのコピーを再配布する、そして、(3) 改変した版を配布する。」
#GPL/LGPL
GPLは強いコピーレフトであるため、ビジネスユースとしては、より緩いライセンスであるBSDやMIT Licenseの方が好まれる場合が多く、自由を守るという信念に基づいて、適用範囲や条件を緩和したLGPLが作成されました。特にLGPLv3は、GPLv3の互換性を強くするため、GPLv3に対し許諾条項を追加するという形式で提供されています。
そのため、LGPLv3は、GPLv3で追加になった条項に着目する必要があります。
GPLv3で話題となったものとしては、以下のものがあげられます。
・特許のライセンスに関する規定
・特許の係争禁止
・DRM対抗
LGPLv3では、許諾条項が変更されるため、この一部は適用されなくなっています。
#LGPLv3
前置きが終わったので、ようやく今回Qtに追加されたライセンスの、LGPLv3についての説明に入ります。
LGPLv3は、GPLv3の補完であるため、基本的な条件はGPLv3に由来します。
GPLv3の記載を緩和する追加条項として重要なのは、以下の一文となります。
[原文]
- Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL.
私と同じで、英語が苦手な人向けに、訳をつけておきます。
[訳]
- GNU GPL第3項への例外
あなたは本許諾書の第3項および第4項に従い、著作物を配布(コンベイ)することができる。その際、GNU GPL第3項に束縛される必要はない。
LGPLv3 の section 3, 4 の内容とのことですが、LGPLv2.1 とあまり変わっていない基本的な条項のようです。項目名だけあげておきます。
- Object Code Incorporating Material from Library Header Files.
- Combined Works.
加えて、GPLv3 section 3 の内容は除外されているようです。
では、section 3 の内容とは、どんなものでしょうか?
##GPLv3 section3 の内容
[原文]
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.
When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.
[訳(IPAの逐次解説より引用)]
- 技術的保護手段の回避を禁ずる法律に対するユーザの法的権利の保護
(第 1 パラグラフ)
いかなる対象著作物も、WIPO 著作権条約(1996 年 12 月 20 日採択)第 11 条の定める
義務を充足する準拠法、及びそれに類する技術的保護手段の回避を禁ずる法における「技
術的保護手段」とは見なされないものとする。
(第 2 パラグラフ)
あなたが対象著作物をコンベイする場合、あなたは、本許諾書に基づいて当該対象著作
物に関する権利を行使することにより回避行為に影響を与える範囲において、技術的保護
手段の回避を禁止する法的権利を放棄するものとする。また、あなたは、技術的保護手段
回避の禁止に関わるあなた又は第三者の法的権利を行使する手段として、著作物の動作又
は改変を制限する意図を放棄するものとする。
IPAの逐次解説によれば、これは以下のような内容となります。
第1パラグラフは、GPLv3 プログラムを利用して技術的保護手段の機能を有するプログラムを開発すること自体は禁止していない、ということのようです。
しかし、仮に技術的保護手段の機能が GPLv3 プログラムを用いて実現されている場合、当該技術保護手段を回避するプログラムが開発・公開されたとしても、GPLv3 の適用を受ける当事者は、当該プログラムが「技術的保護手段の回避を行うことを専らその機能とするプログラム」(著 120 条の 2 第 1 号)に該当すると主張することは、第 1 パラグラフの定めにより許されないことになります。
したがって、GPLv3 適用プログラムが技術的保護手段の機能を有するソフトウェアの開発に利用されたとしても、その保護手段を回避するプログラムを開発して公開することで、実質的にその技術的保護手段を無効化することができる。これが第 1 パラグラフの意図していることです。
第 2 パラグラフ第 1 文は、GPLv3 プログラムを配付(コンベイ)した者は技術的保護手段の回避を禁止する法的権利を放棄する旨を定めています。
わが国の不正競争防止法の場合についていえば、同法 2 条 1 項 10 号・11 号違反に基づく差止請求権(同法 3 条)及び損害賠償請求権(同法 4 条)を放棄することになります。これにより、回避プログラムを提供した者は、不正競争防止法上の民事責任を追及されるおそれがなくなります。
第 1 パラグラフは裁判所を対象にした規定ですが、本パラグラフ第 1 文は技術的保護手段のプログラムを開発し公開した者を対象にした規定です。
本パラグラフ第 2 文は、技術的保護手段の回避を禁ずる手段として、法的権利を行使してプログラムの動作や改変を制限することを禁止しています。これにより、例えば、ソフトウェア・パッケージや組込み機器の購入者と著作権者の間のライセンス契約において、著作権の許諾条件として、技術的保護手段回避機能に関するプログラムの動作や改変を禁止する規定を設けることは許されない(そのような意図を予め放棄する)ことになります。
##LGPLv3の特徴
以下に、特徴をまとめます。
-
LGPLv2.1と変わらず、LGPLv3ライセンス下のライブラリをユーザーが入れ替えるための手段が提供されていれば、LGPLv3のライセンスは伝播しない
⇒ ユーザーが入れ替えるための手段としては、たとえ静的リンクの場合でも、リンクするオブジェクトコードとリンク手段が提供できれば良く、ソースコードの開示は必須ではないということになります。 -
DRM対抗条項は適用されない
⇒ GPLv3 section3 が適用されないことにより、LGPLv3では、技術的保護手段によってコンテンツなどの著作権を守りやすくなっているのではないかと思います。
たとえば、ハードウェアメーカーなどは、LGPLv3のソフトウェアを実装したものを開発した場合、技術的保護手段によってユーザーの改変を防ぐことができ、仮に回避プログラムを作成されたとしても、上記の条項が当てはまらないので損害賠償請求権をもち、提訴しやすい、ということではないでしょうか。Qtが今回GPL3ではなく、LGPLv3を採用した理由は、企業利益を守るためということなのではないかと思います。 -
特許ライセンスに関する規定・係争禁止はLGPLv3からの追加条件となる。ただし、対象はLGPLv3のライブラリ内の話であり、Qtとリンクする非GPL/LGPLのプログラム内の特許に及ぶわけではない
⇒ GPLv3の特許に関する説明は以下のサイトが詳しいので、そちらを参照願います
漢のコンピュータ道
#蛇足
なお、Qtに付属するサンプルコードですが、サンプルコードはいつの間にかBSDライセンスになっています。
#参考URL
今回、すべてに目を通せたわけではないですが、調べるのに役に立ちそうなURLということで、参考にさせていただいたものを載せておきます。
・Qtのライセンスについて
Qt project のlicense のページです。
http://www.qt.io/licensing/
・GPLv3, LGPLv3の原文
FSF(Free Software Foundation)のページです。
https://www.gnu.org/licenses/gpl.html
https://www.gnu.org/licenses/lgpl.html
・GPLv3, LGPLv3の和訳
SourceForge.JPのページです。
http://sourceforge.jp/magazine/07/09/02/130237
http://sourceforge.jp/magazine/07/09/05/017211
・IPA GPLv3解説
IPA(情報処理推進機構)のページです。
https://www.ipa.go.jp/osc/license1.html
・GPLv3の利用において考慮すべきポイント
こちらもIPAです。
http://www.ipa.go.jp/files/000028294.pdf
・トーバルズ対GPLv3
DRM対抗についての、Linusさんの見解。
http://www.itmedia.co.jp/enterprise/articles/0602/07/news014.html
・GPLv3にアップデートする理由
FSF(Free Software Foundation)のページです。
リチャードストールマン氏の説明です。
https://www.gnu.org/licenses/rms-why-gplv3.ja.html
・GNUライセンスについてよく聞かれる質問
http://www.gnu.org/licenses/gpl-faq.ja.html
・漢のコンピュータ道
http://nippondanji.blogspot.sg/2010/11/gplv3.html
こちらは、参考までに。
http://www.law.co.jp/okamura/copylaw/200611gplv3_okamura.pdf