Qt License Agreement はそのまま契約してはいけない

この記事はヨーロッパを中心に Qt のコンサルティングを行っている Burkhard Stubert が 2024/09/16 に公開した Do Not Sign the Qt License Agreement Unchanged というブログ記事を、彼の許可を得て日本語に翻訳したものになります。


みなさんこんにちは。

まず初めにご紹介したいのは、License Compliance for Embedded Linux Systems という私の新製品です。新しいというよりはこれまで公にしていなかっただけなのですが、実は私は過去5年で25以上の顧客に対してライセンスのコンプライアンスチェックを行っていました。今回、この製品のランディングページを作成し、価格や説明、Q&A などを記載しました。

私の元には様々な企業から問い合わせがくるのですが、「The Qt Company は Qt の商用版に対してはバラ色の絵を描き Qt のオープンソース版 に対しては真っ暗な絵を描く」とみなさん感じているようです。私はそんなみなさんに対して、Qt の商用版とオープンソース版のどちらを選ぶべきかを判断するための正しい情報をお伝えするようにしています。その結果、多くの方が組み込み機器の開発は Qt のオープンソース版で十分だということと、LGPL が必要とする責務を果たすことは簡単であること、さらにボーナスとして Qt のオープンソース版を利用するコストは商用版に比べてとても低いということを理解します。オープンソース版の Qt は本当に素晴らしいプロダクトで、非常に多くの企業がオープンソース版の Qt で素晴らしい製品を開発していることを覚えておいてください。

そういった活動の一環で、Qt の商用ライセンスについて説明する機会が数多くありました。Qt の商用ライセンスの暗部について今回は説明したいと思います。Qt の商用ライセンスの契約をする際には、ライセンス条項をとても注意深く読み、様々な人と議論をし、LGPL と比較することを強くお薦めします。

それでは本題に入りましょう。

Qt License Agreement はそのまま契約してはいけない

The Qt Company の営業担当者は Qt を組み込み機器で利用する際には Qt for Device Creation(QtDC) のライセンスを安全で安心だと伝えて売ろうとします。同時に、LGPL はとても危険で、複雑なライセンスだと説明するでしょう。私はこれには反対で、私の顧客やみなさんの多くも私と同じ結論に達することになるでしょう。

Qt のライセンス契約 は、法律用語、不明瞭さ、不正確さ、省略における傑作であり、数多くの落とし穴が含まれています。The Qt Company はここ数年で何度も契約を改訂してきました。(最新のライセンス契約 と、2021年時点のもの を見比べてみましょう。)The Qt Company は、Qt が搭載されていない組み込み機器と通信をする PC 用の Qt 製のアプリケーションを、組み込みデバイスと定義し、QtDC ライセンスが必要となるようにライセンスを改訂し続けています。

数年前は、そのようなケースでは The Qt Company は Qt for Application Development(QtAD) ライセンスを販売していました。そのライセンスの更新時期が来ると、The Qt Company は、顧客がライセンス契約に重大な違反を犯していると主張し、はるかに高額な QtDC ライセンスを押し付けようとします。一部の顧客は屈し、一部の顧客はオープンソース版の利用もしくは Qt 自体をやめることがより良い選択肢であることに気づきます。

企業の中には、Qt の営業担当者の気楽な戯言にだまされて、6桁ユーロ単位のライセンス料を毎年支払っているところもあります。 必然的に彼らは Qt のオープンソース版が自社の組み込みデバイスには十分すぎるほどであることに気づくでしょう。 ライセンス期間が終了したときに、これらの企業がどう感じるか、そしてどうするか、想像してみてください。

これらの企業に共通しているのは、Qt のライセンス契約を十分に読まず、QtDC の代替案の評価もしなかったことです。彼らは自らの災難を自ら招いたのです。The Qt Company はライセンス契約を自由に書き換える権利を持っています。そのライセンスは全然「キュート」ではありませんけど。逆に Qt の潜在的な顧客側には、ライセンス契約の変更を要求したり、契約自体をしない権利があります。

これから私はこの Qt のライセンス契約の暗部を指摘し、変更を提案する予定です。The Qt Company がこれらの変更を受け入れるかどうかは疑わしいですが、試してみる価値はあるでしょう。The Qt Company がこれらの交渉に対する態度から学ぶことは多くあり、契約に署名すべきかどうかが分かるでしょう。QtDC の代替案を知ることは、交渉時の立場の改善にもつながります。

ほとんどすべては組み込みデバイス

「デバイス」の定義

最新の Qt Product and Service Agreement for the Qt Development Framework では、組み込みデバイスは以下のように定義されています。

2.10. “Devices” shall mean

  • i. hardware devices or products that
    • a. are manufactured and/or distributed by the Customer, its Affiliates, Contractors or End Customer, and
    • b. incorporate, integrate or link to Applications such that substantial functionality of such unit, when used by an End User, is provided by Application(s) or otherwise depends on the Licensed Software; or
  • ii. Applications designed for the hardware devices specified in item (i).

Devices covered by this Appendix shall be specified in the Pricing Appendix or Purchase Document.

See definition 2.10 “Devices” in the Qt Product and Service Agreement for the Qt Development Framework (Version 2024-02, compliant with Qt Frame Agreement 2023-06 or later)

以下はそれをこの記事の翻訳者が日本語に訳したものです。

2.10. 「デバイス」は以下のとおりとする

  • i. ハードウェア端末もしくは製品のうち
    • a. 顧客、その関連会社、契約業者、またはエンドカスタマーによって製造および/または配布され、かつ、
    • b. エンドユーザーによって使用される際に、アプリケーションによって提供される実質的な機能が提供されるか、またはライセンスされたソフトウェアに依存するようにアプリケーションが組み込まれ、統合され、またはリンクされたもの。もしくは、
  • 項目 (i) で指定されたハードウェアデバイス向けに設計されたアプリケーション。

この Appendix でカバーされるデバイスは、Pricing Appendix もしくは Purchase Document にて指定されるものとします。

Qt Product and Service Agreement for the Qt Development Framework (Version 2024-02, Qt Frame Agreement 2023-06 以降に準拠)の 2.10 “Devices” の定義も参照のこと

ありえない!!!???私もまずそう思いました。これは曖昧すぎて理解不能で、範囲が広すぎで、法律用語の傑作です。では、このちんぷんかんぷんな文章を分かりやすい言葉に翻訳してみましょう。

このデバイスの定義の論理構造は次のとおりです。

(i.a かつ i.b) または ii。
みなさんの「ハードウェア製品」は、条項 (i) または条項 (ii) のいずれかが満たされる場合に「デバイス」とみなされます。条項 (i) は、条項 (a) および条項 (b) の両方が満たされる場合にのみ満たされます。

条項 (i) に基づくデバイス

まずは単純なケースから始めましょう。農業機械メーカー M には、Qt を使用して機械のドライバ端末(「ユニット」、「ハードウェア端末」または「ハードウェア製品」)を開発するチームがあります。M は ハーベスター をドライバ端末と共に農家 F に販売します。ドライバ端末は、M がそれらを製造および配布している (i.a) ことと、1つ以上の Qt アプリケーション(定義2.3によるアプリケーション)が端末上で実行され、機械の操作に「実質的な機能」を提供している (i.b) ため、上記の定義における「デバイス」と確かに見なされます。

条項 (i.a) は、M だけでなくその関連会社、契約業者、エンドカスタマーも含むため、ライセンスを必要とするデバイスと開発者の数を大幅に増やしています。

関連会社とは、M が支配的な多数株式を保有している会社、または M に支配的な多数株式を持つ会社を指します(Qt Frame Agreement3.1 “Affiliate” の定義を参照)。例えば、ある世界最大級の農業メーカーは20ものブランドを所有しています。そして各ブランドは関連会社と見なされます。

M が端末のソフトウェア(Qt を使用したアプリケーションおよびライブラリを含む)の大部分を関連会社と共有する場合、M は関連会社のデバイスおよび開発者に対して Qt の商用ライセンスを購入しなければなりません。これは M 自体の事業部でも同様です。

例えば、上記の農業メーカーの異なるブランドが製造するトラクターでは、ドライバ端末のコードの大部分が共有されており、異なるブランド間で GUI による差別化がなされています。これらのブランドの一つでも Qt の商用版を使用している場合には、他のすべてのブランドも商用版の Qt を使用しなければなりません。

あるブランドが「実質的な」Qt ベースのコードを他のブランドとは共有していないことを証明できる場合にのみ、商用版の牢獄から逃れることができます。もちろん、The Qt Company は「実質的な」を「Qt ベースの任意のコード」と解釈するでしょう。関連会社が使用が実質的でないことを議論するのは困難でしょう。最善の策は Qt をまったく使用しないことです。あるいは、ライセンス期間が終了した後に M とそのすべての関連会社がオープンソース版の Qt に移行することです。

M がドライバ端末のハードウェアまたはソフトウェア開発を契約業者(Qt Frame Agreement3.2 “Contractor” の定義を参照)に部分的または完全にアウトソースする場合、M はデバイスごとまたは開発者ごとの Qt の商用ライセンスの料金を支払わなければなりません。特に、M は Qt アプリケーションを開発するすべての M の社員および契約業者に対して開発者ライセンスも購入しなければなりません。

エンドカスタマーとは、「M が、直接または間接的に、再配布可能ファイルのコピーをアプリケーションまたはデバイスに統合または組み込んで配布する会社」を指します(強調は筆者によるもの。Qt Product and Service Agreement for the Qt Development Framework2.4 “End Customer” の定義を参照)。

The Qt Company が間接的なエンドカスタマーへの配布をデバイスの定義に含めた理由として考えられるシナリオがあります。M が Qt for Application Development(QtAD)を使用して端末ソフトウェアを開発し、開発者ごとのライセンス料のみを支払っている場合、M はすべての端末を関連会社ではない再販業者に販売します。再販業者は端末をエンドカスタマーに販売し、Qt ソフトウェアを LGPL の下でライセンスします。M と再販業者はデバイスごとのライセンス料を節約します。もちろん、The Qt Company はこの抜け穴を塞ぎたいと考えています。

条項 (ii) に基づくデバイス

  • ii. Applications designed for the hardware devices specified in item (i).

以下はそれをこの記事の翻訳者が日本語に訳したものです。

  • ii. 項目(i)で指定されたハードウェアデバイス向けに設計されたアプリケーション。

条項 (i) は、組み込みデバイス上で実行される Qt アプリケーションをカバーしています。条項 (ii) は、Qt アプリケーションがデバイス上ではなく PC、スマートフォン、またはタブレット上で実行され、デバイス上に Qt がインストールされていない場合にもデバイスの定義を拡張します。

例えば、医療機器の会社 MT が人間用のX線によるCTスキャン装置(典型的な組み込みデバイス)を製造販売しているとします。Qt は装置にはインストールされていません。医療スタッフは、Windows PC 上で実行される Qt アプリケーションを使用して装置を操作し、3D のスキャン結果を評価します。PC アプリケーションと装置は LAN 経由で通信します。

The Qt Company にとっては、この PC アプリケーションは装置向けに設計されたアプリケーションです。したがって、PC アプリケーションと装置でデバイスを構成します。MT は Qt for Device Creation(QtDC) ライセンスを購入し、開発者ごとおよびデバイスごとのライセンス料を支払わなければなりません。Windows PC 上で Qt アプリケーションを開発するために QtAD ライセンスのみを購入するのでは不十分です。

私は多くの顧客に対して The Qt Company がこのような理由付けを適用しているのを見てきました。The Qt Company は MT が LGPL に違反すると主張しましたが、これは誤りです! LGPL は、PC アプリケーションと組み込みデバイスを別々のユニットとして扱い、個別にライセンスします。

以前のバージョンのライセンス契約には、条項 (ii) の明確な定義が含まれていました。

[Products are Devices] regardless of whether the Redistributables are distributed together with the hardware or not.

See “Devices” definition in the 2021 version of the Qt license agreement

以下はそれをこの記事の翻訳者が日本語に訳したものです。

[製品はデバイスである] 再配布可能なファイルがハードウェアと一緒に配布されてるかどうかは関係ありません。

2021 version of the Qt license agreement の “Devices” の定義を参照

Qt の使用報告はまだこの定義を使用しています。再配布可能なファイルとは、オブジェクトコード形式の Qt ライブラリを指します。つまり、Qt アプリケーションがデバイス上で実行されるかどうかは関係ありません。

ここで、契約書の分析に非常に役立つ、学者肌のドイツ人としての私自身をお見せしましょう。その彼は、この医療技術会社 MT の状況は Qt のライセンス契約の意味でのデバイスには該当しないと考えています。条項 (ii) は「条項 (i) で指定されたハードウェアデバイス」を参照しています。

条項 (i) は、条項 (i.a) と条項 (i.b) の両方が満たされた場合にのみ満たされることを忘れないでください。そして、条項 (i.b) は Qt アプリケーションがデバイス上で実行されることを要求しています。しかし、X線によるCTスキャン装置には Qt がインストールされていないため、条項 (i.b) は満たされません。したがって、条項 (i) は満たされません。したがって、条項 (ii) は適用されません。

この装置がデバイスとなるのは、デバイス上で「実質的な機能」を提供する Qt アプリケーションが実行される場合だけです。その場合、条項 (ii) はもはや問題になりません。しかし、過度な期待はしないように。最終的な判断は裁判所にて行われます。The Qt Company は依然として MT のケースはデバイスであると主張するでしょう。「ハードウェア端末もしくは製品のうち(中略)アプリケーションが組み込まれ、統合され、またはリンクされたもの。」という表現は十分に曖昧であり、アプリケーションがデバイス上で実行されるか、ネットワークでの「リンク」を介して接続されたPC上で実行されるかのいずれかとして解釈するこも可能です。

ライセンス契約の内容を変更する方法

ほとんどの Qt の顧客は、このデバイスの定義を変更するための十分な交渉力を持っていないと考えるのが妥当でしょう。しかし、定義のこの最後の一文が彼らに突破口を与えています。

Devices covered by this Appendix shall be specified in the Pricing Appendix or Purchase Document.

以下はそれをこの記事の翻訳者が日本語に訳したものです。

この Appendix でカバーされるデバイスは、Pricing Appendix もしくは Purchase Document にて指定されるものとします。

Qt の顧客は、ライセンス契約でカバーされるすべてのデバイスが Pricing Appendix または Purchase Document に明示的にリストされていることを主張するべきです。デバイスがリストされていない場合にはライセンス契約(の Appendix)は適用されません。

Qt の顧客は、組み込みデバイス向けに「設計された」デスクトップおよびモバイル Qt アプリケーションを含む、自社の製品のリストも追加すべきです。MT は、自社の PC アプリケーションとX線によるCTスキャナ装置をそのリストに追加するでしょう。

デバイス定義の最後の文は、以下のように記述されうるでしょう(変更箇所は強調で示しています)。顧客の弁護士は許容可能な表現を考え出すはずです。

Devices covered by this Appendix and Devices not covered by this Appendix shall be specified in the Pricing Appendix or Purchase Document. During the License Term, the classification as Device or Not-Device can only be changed by mutual agreement of both Parties.

以下はそれをこの記事の翻訳者が日本語に訳したものです。

この Appendix でカバーされるデバイスおよびこの Appendix ではカバーされていないデバイスは、Pricing Appendix もしくは Purchase Document にて指定されるものとします。ライセンス期間中、このデバイスか否かの分類は、両当事者の相互合意によってのみ変更できます。

私は The Qt Company は監査請求をするだろうと考えます。顧客には監査を許可または禁止する自由があります。監査を許可することで、The Qt Company が契約に署名する可能性が高まると予想します。しかし、これは完全に顧客次第です。

当然、The Qt Company はこの変更を受け入れる必要はありません。同様に、潜在的な顧客も変更されていない契約に署名する必要はありません。契約からは身を引き Qt をLGPL の下で使用するか、Qt をまったく使用しない選択もありえます。The Qt Company は支払いをする顧客を失うことになります。双方が相互に合意に達するべきである理由がここにあります。

ライセンス契約の終了

終了または停止の理由

条項 11.1 によると、The Qt Company は顧客が「契約に重大な違反を犯した場合」または顧客が「破産、債務不履行、清算、または債務再編に入った場合」にライセンス契約を終了する権利を持っています。例えば、顧客が支払いを期限通りに行わない、もしくはまったく行わない場合や、配布ライセンス以上のデバイスを販売する場合、The Qt Company から要求された使用報告を提供しない場合などが重大な違反にあたります。

条項 11.2 によると、The Qt Company は顧客のデバイスまたは開発のための Qt の使用権を一時停止することができます。例えば、顧客が違反や違反を是正しない場合、The Qt Company は書面による通知を受け取った後10日以内に顧客のデバイスの販売を禁止することができます。このような一時停止の理由は具体的なものから曖昧なものまでさまざまです。(下記の強調は筆者によるもの)

[The Qt Company can suspend the customer’s use of Qt] should Customer fail to make payment in timely fashion or otherwise violate or is reasonably suspected of violating its obligations under the Agreement and/or this Appendix […]

[The Qt Companyは、顧客による Qt の使用を停止することができます] 顧客が支払いを適時に履行しない場合、または本契約および/または本付録に基づく義務に違反した場合、またはその合理的な疑いがある場合は、(以下略)

つまり、The Qt Companyが顧客が Qt ライセンス契約に違反していると「合理的に疑う」場合、顧客のデバイスの販売や操作を禁止することができます。「合理的に」という意味は The Qt Company が独自に決定するか、裁判所が決定します。しかし、裁判所の決定が下るまで顧客はデバイスを処理できません。このような状況で、顧客はどうするかはお分かりでしょう。そう、顧客にとっての最善はこれらの状況を避けることです。

私の推奨は、条項 11.2 から取り消し線の部分を削除することです:

[The Qt Company can suspend the customer’s use of Qt] should Customer fail to make payment in timely fashion or otherwise violate or is reasonably suspected of violating its obligations under the Agreement and/or this Appendix […]

以下はそれをこの記事の翻訳者が日本語に訳したものです。

[The Qt Companyは、顧客によるQtの使用を停止することができます] 顧客が支払いを適時に履行しない場合、または本契約および/または本付録に基づく義務に違反した場合、またはその合理的な疑いがある場合は、(以下略)

この変更により、違反を疑うだけでは不十分になります。The Qt Company は違反または重大な違反を証明しなければなりません。裁判所は根拠のない一時停止を迅速に解除することができます。

繰り返しになりますが、The Qt Company がこの変更を受け入れるかどうかは不明です。顧客は契約から去る決定権があります。

自動更新に注意

サブスクリプションの素晴らしい世界へようこそ。動画、スマホ、インターネット、そして Qt。 顧客がライセンス期限の満了の「少なくとも30日前」に書面で The Qt Company に通知しない限り、ライセンスの期間は自動的に更新されます(条項 5.1.4 を参照)。両当事者はライセンス契約の改正において通常より長い通知期間(例えば60日)について合意することができます。ちなみに、Qt Companyも同様に顧客と同じ方法で契約を終了できます。

条項 5.1.5 は、両当事者が更新前にライセンス料を再交渉することを許可しています。しかし、顧客は通知期間が開始する前に新しいライセンス料に合意する必要があります。そうしないと、The Qt Companyは「更新期間の開始日に適用される標準リスト価格」を請求することができます。そして、私たちは価格の傾向についてよく知っています。

私は Qt の顧客に対して以下を推奨します。

  • ライセンス契約から条項 5.1.4 および 5.1.5 を削除すること
  • または、ライセンス期間終了後1週間以内に The Qt Companyに解約通知を行うこと

これにより、Qtのサブスクリプションが自動的に更新されることを防ぐことができます。

注意: Qt の顧客にとって、ライセンス契約を終了する唯一の方法は、期限内にサブスクリプションをキャンセルすることです。

契約終了時の権利と義務

Qt の顧客が期限内に Qt のサブスクリプションをキャンセルした場合、終了時に特定の権利と義務を保持します(セクション 11.3 を参照)。

  • Clause 11.3.1. The developers of the customer must stop using the Qt tools, Qt libraries, pre-built Boot2Qt images and all other Qt-ware that they downloaded and installed through the Qt Commercial license. They must start using Qt-ware under the open-source licenses: LGPL-3.0 for the libraries and GPL-3.0 for the tools.
  • Clause 11.3.2. The developers must also delete all installed copies of commercial Qt tools and Qt libraries. Qt customer can keep some developer licenses to continue the support of their End Customers. Bug fixing is OK. Adding new features is not OK.
  • Clause 11.3.3. “Distribution Licenses are perpetual”. Qt customers can use existing devices with Qt for Device Creation (QtDC). They can sell devices with QtDC until they have used up all the distribution licenses they have paid for.

以下はそれをこの記事の翻訳者が日本語に訳したものです。

  • 条項11.3.1:顧客の開発者は、Qt の商用ライセンスを通じてダウンロードおよびインストールしたすべての Qt のツール、Qt ライブラリ、ビルド済みの Boot2Qt イメージ、その他すべての Qt のソフトウェアの使用を停止しなければなりません。オープンソースライセンスの下で Qt を使用しなければなりません:ライブラリは LGPL-3.0、ツールは GPL-3.0 です。
  • 条項11.3.2:開発者は、商用版の Qt のツールおよび Qt ライブラリのすべてのインストール済みコピーも削除しなければなりません。Qt の顧客は、エンドカスタマーのサポートを継続するために一部の開発者ライセンスを保持することができます。バグ修正は OK ですが、新しい機能の追加は OK ではありません。
  • 条項11.3.3:「配布ライセンスは永続的です」。Qt の顧客は Qt for Device Creation(QtDC) を使用して既存のデバイスを使用できます。支払った分の配布ライセンスをすべて使用しきるまでは、デバイスを販売できます。

注意: 顧客がライセンス契約に重大な違反を犯した場合は、セクション 11.3 の権利を失います。

ライセンス契約のセクション 11.3 を読むと、顧客の義務がかなり明確に規定されている一方で、顧客の権利は曖昧であることがわかります。私の上記の要約は、以前の、より明確なバージョンの Qt のライセンス契約および通常のビジネス慣行に基づいた合理的な解釈です。

私は Qt の顧客に対して、セクション 11.3 の表現をより明確で具体的にすることをお勧めします。例えば、顧客は保持できる開発者ライセンスの数、期間、および目的を明記するべきです。また、支払ったがまだデバイスと共に販売されていない余剰ライセンスを使用しきることができることも追加すべきです。