Qt オープンソース版の利用
Qtオープンソース版のダウンロードに進む前に、
プロジェクトに適切なライセンスかご確認ください。
考慮すべきこと
Qtフレームワークは、オープンソースと商用ライセンスの両方で利用可能です。このデュアルライセンスモデルは、大まかに「何かのための何か」を意味するクイド・プロ・クオの原則に基づいています。
簡単に言うと、Qt を使用してアプリケーションを作成することで得られる価値の見返りとして、Qt に貢献したり、Qt を購入することでお返しをするということです。
オープンソースによる貢献
プロジェクトにオープンソースライセンスを選択すると、LGPLバージョン3、GPLバージョン2、GPLバージョン3のいずれかに基づいてQtを使用して、無料のオープンソースソフトウェアの開発に貢献していただきます。
Qt オープンソースモデルの基本的な前提
GPL - すべてのユーザーは、アプリケーションのソースコード全体を取得、変更、再配布する権利を有します。ユーザーには、GNU General Public Licenseの4つの自由に基づく権利が付与されます。
LGPL -GNU Lesser General Public Licenseの対象となるQtコンポーネントへのすべての変更を、コミュニティに提供する必要があります。これはQtモジュールの大部分をカバーする主要なオープンソースQtライセンスです。
Qt製品マップで、異なるオープンソースモデルに基づいて利用可能なコンポーネントを確認してください。
Qtの一部は、GPLに基づいてのみオープンソースで提供され、GPLに対応するライセンスを発行することが必要になります。Qtにはサードパーティのオープンソースコンポーネントも同梱されており、使用する場合はそれぞれのライセンスに準拠する必要があります。詳細はQt に含まれるその他のライセンスを参照してください。
オープンソースの使用義務
Qt モジュールの大部分は、 LGPL v3 および GPL v3 オープンソースライセンスの下で利用可能です。このライセンスで開発する場合、以下の義務があります:
- Qt ライブラリの再リンクメガニズムを提供すること。
- ライセンスのコピーを提供し、Qt の使用を明示的に記載すること。
- Qt ソースコードのコピーを顧客が利用できるようにすること。
- Qt のソースコードの変更が非独占的であることを承認すること。
- 「オープン」なコンシューマデバイスを作成すること。
- デジタル著作権管理の条件に同意すること。(GPL FAQをご覧ください)
- ソフトウェア特許を行使しようとする場合には、特別な配慮をすること。(FAQをご覧ください)
オープンソースライセンスモデルがプロジェクトに適していない場合、またはライセンス条項を遵守できるかどうか懸念がある場合は、お問い合わせください。商業ライセンスパッケージの選択に基づき、アプリケーションの開発、使用、配布に必要な権利を確保するお手伝いをいたします。
同じアプリケーションやデバイスで、オープンソースと商用ライセンスの両方を使用することはできません。詳しくはQt ライセンス FAQをご覧ください。
コミュニティに貢献しましょう!
私たちの資金は商用ライセンスとサービスの販売に由来するものであるため、可能な限り迅速に商用化の準備を整えることが不可欠です。これは、Qt の開発プロセスにコミュニティが積極的に参加することによってのみ達成できます。Qt コミュニティは、Qt の安定性、豊かさ、品質を保証する上で重要な役割を担っています。Qt のリリースが世界中の何千人ものオープンソース開発者によって徹底的にテストされることで、Qt のさらなる開発を推進するためのコストを支えるために必要な後押しを得ることができます。これは Qt の未来を保証するものです。私たちはこれを好循環と呼んでいます。
Contribution Wiki へQtバイナリをお探しですか?
Qt Online Installerからダウンロードしてください。適切なバージョンに誘導し、オープンソースライセンスで利用可能なツールとアドオンコンポーネントをインストールするのをサポートします。
Qt Online Installer をダウンロードするQtをはじめる
注意義務
Qt オープンソースライセンスの義務を遵守できていることを確認してください。利用するライセンスを決定するときは、貴社のオープンソースポリシーを確認するか、ソフトウェアライセンスにかかわる法律の専門家にご相談ください。
よくある質問
なぜ Qt はオープンソースライセンスでも提供されているのですか?
私たちは、ソフトウェアの利用に一定の権利と義務が伴うとするフリーソフトウェア運動の理念を信じています。Qt をオープンソースライセンスで提供することで、Qt を利用するアプリケーションやデバイスにおいて、ユーザーに以下の4つの基本的な自由を提供しています:
-
どんな目的でもプログラムを実行できる自由
-
プログラムの仕組みを学び、自分のニーズに合わせて変更できる自由
-
プログラムを再配布し、他の人を助けられる自由
-
プログラムを改良し、その改良を公開してコミュニティ全体に貢献できる自由
これらの自由は、交渉可能でも部分的なものでもなく、絶対的なものです。そして、これらの自由は他のユーザーにも同様に引き継がれる必要があります。
フリーソフトウェアコミュニティは、これらの原則のもとで発展してきました。一方で、企業の要件によってはオープンソースの条件に沿うのが難しいケースもあります。Qt では、そうしたニーズにも応えるために商用ライセンスもご用意しています。Qt はプロジェクトのスタイルや規模に応じて、最適なライセンス形態を選べる柔軟なプラットフォームなのです。
なぜ Qt は KDE とライセンスに関する合意を結んでいるのですか?KDEとは何で、Qtとの関係の歴史は?
KDE(kde.org)は、1996年に設立された国際的なフリーソフトウェアコミュニティで、デスクトップ向けのクロスプラットフォームアプリケーション群を開発しています。なかでも有名なのは「Plasma Desktop」というデスクトップ環境で、多くのLinuxディストリビューションで標準環境として採用されています。そしてKDEのソフトウェアは、Qtフレームワークを基盤として構築されています。
Qtの初期において、KDEプロジェクトとそのコミュニティはQtの開発者エコシステムを形成するうえで最大の推進力でした。当時からQtはデュアルライセンスでしたが、提供されていたソースコードはプロプライエタリ寄りのオープンソースライセンスであり、Trolltech(Qtの創業企業)が買収されたり破綻したりした場合に、KDEが自由にQtを使い続けられる保証が求められていました。
そこで設立されたのが KDE Free Qt Foundationであり、両者の合意により KDE Free Qt Foundation Agreementが結ばれました。
この協会の目的は、Qtツールキットがフリーソフトウェア開発、特にKDEの開発において、今後も自由に利用できる状態を保証することです。協会は1998年、Trolltech社とKDEの非営利法人であるKDE e.V.によって設立されました。この合意により、Qtは主要なデスクトップおよびモバイルプラットフォームにおいて、LGPLv3およびGPLv3ライセンスの下で提供されることが保証されています。
Qtが他社に買収されたり、ライセンスや対応プラットフォームが変化したりする中でも、この合意は複数回にわたり更新され、Qtの自由な利用とKDEの継続的な発展が守られてきました。
LGPL/GPLの制限を守らなかった場合、どのような影響がありますか?
LGPL や GPL ライセンスの条件を満たさないまま、該当するオープンソースライブラリを使用したソフトウェアを配布した場合、ライセンスが無効となり、ソフトウェアの配布権を失うことになります。
また多くの国では、著作権侵害は契約違反ではなく法的な違反(法定違反)とみなされるため、法的救済措置(損害賠償請求や差止め請求など)が適用される可能性があります。
GPLに関する詳細は、GNUの公式FAQページでもご確認いただけます:
https://www.gnu.org/licenses/gpl-faq.html
LGPLv2とLGPLv3の違いは何ですか?
LGPLv3 は、GNU Lesser General Public License の現行バージョンであり、LGPLv2.1 は旧バージョンです。Free Software Foundation(FSF)は、新しいプロジェクトではLGPLv2.1の使用を推奨していません。
両バージョンとも、ソフトウェアの使用と改変の自由を守るという目的は共通していますが、LGPLv3の方がより明確にその意図を表現し、ユーザーの権利を保護するための条件が強化されています。
特にLGPLv3では、次のような点が明示されています:
-
Tivoizationへの対応:ユーザーがQtのようなLGPLライブラリを改変して使用する権利を持たないような「閉じた機器」の提供は禁止されています。
-
DRMやハードウェア暗号化の制限:これらを利用して、LGPLライブラリの自由な改変や使用を妨げてはならないと定められています。
-
ソフトウェア特許の報復防止条項:LGPLv3では、すべてのユーザーに特許ライセンスが付与されることが前提となっており、配布されたソフトウェアに対する特許訴訟を無効化します。
Qtのオープンソース版(Community Edition)を使って商用製品を開発できますか?
可能ですが、ご自身のビジネス要件や製品内容によって判断する必要があります。
Qtのオープンソース版(Qt Community Edition)は、主に LGPLv2.1 / LGPLv3 / GPLv3 のライセンスのもとで提供されています。
そのため、商用製品であっても、これらのオープンソースライセンスの義務をすべて満たすことが必要です。
QtをLGPLのもとで使用する際の義務は何ですか?
まず最初に注意すべき点として、すべてのQtオープンソースモジュールがLGPLv3のもとで提供されているわけではありません。一部のモジュールはオープンソース用途としてGPLv3のもとで提供されており、たとえばChromium Web EngineのようなサードパーティコンポーネントはLGPLv2.1で提供されています。
QtのモジュールやライブラリをLGPLv3のもとで使用する場合、以下の義務を満たす必要があります:
-
オープンソースソフトウェアを使用する際は、プロジェクトで使用するすべてのサンプル、ソースコードのスニペット、モジュールおよびライブラリのライセンスを把握し、追跡する必要があります。
-
使用したQtライブラリの完全なソースコード、ならびに加えたすべての変更をユーザーまたは顧客に提供する必要があります。あるいは、そのソースコードの入手方法について書面で案内することです。この際、QtプロジェクトやQt Groupが提供するソースコードへのリンクを案内するだけでは不十分であり、自身で管理できる方法を用意する必要があります。
-
LGPLは、ライブラリを「利用する」アプリケーションであれば、そのアプリケーションのソースコードを非公開に保つことを認めています。ここでは通常、動的リンク(ダイナミックリンク)が推奨されます。
-
アプリケーションのユーザーが、Qtライブラリの異なるバージョンまたは修正されたバージョンと再リンクできるようにしなければなりません。LGPLv3では、ユーザーがその再リンクされたバイナリを本来のターゲットデバイス上で実行できることも明確に規定されています。このプロセスを可能にするために必要なツール類をすべて提供する義務があります。組込み機器の場合、使用したビルドツールチェーンをユーザーが利用できるようにすることが含まれます。LGPLv3のもとでは、修正済みライブラリをターゲットデバイスにインストールする方法についても、明確な手順を提供する義務があります(これはLGPLv2.1では明示されていませんが、修正バージョンでの実行を意図している点は同様です)。
-
LGPLソフトウェアを利用しているアプリケーションや機器のユーザーには、その権利について通知する必要があります。これは、LGPLの全文を提供し、LGPLソフトウェアの使用について明示的に記載することで行います。
LGPLの条件は、他のライセンス条件によって制限されることは許されていません。もしアプリケーションがLGPLで定められた義務をすべて満たしていない場合、そのアプリケーションを配布することは認められず、LGPLソフトウェアを使用する権利を失うことになります。
なお、GPL(GNU General Public License)は、LGPL(Lesser GPL)よりもさらに厳格な条件を定めています。
商用ライセンスを使用している場合でも、LGPLを気にする必要はありますか?
通常は、その必要はありません。Qtの商用ライセンス版を使用している場合、Qtのほとんどすべてのモジュールが商用ライセンスの条件のもとで提供されています。
ただし、一部のQtモジュールには、サードパーティ製のオープンソースコンポーネントが使用されています。たとえば、Qt WebEngineはChromium(LGPLv2.1)を、Qt MultimediaはFFmpeg(LGPLv2.1)を使用しています。これらのモジュールを使用する場合は、サードパーティモジュールを独自のコードに置き換えるか、その部分についてLGPLv2.1のライセンス義務を遵守する必要があります。
Qtの各モジュールに含まれるサードパーティ製モジュールや依存関係については、Qt公式ドキュメントに記載されています。なお、これらのリストはQtのリリースごとに異なる場合がありますので、ご使用のバージョンに応じて最新の情報をご確認ください。
商用ライセンスはどのような仕組みですか?開発メンバー全員に有効なQtライセンスが必要ですか?
このトピックに関しては、Qtの公式FAQに詳しくまとめられています:https://www.qt.io/faq/qt-commercial-licensing
基本的に、Qtを利用するすべてのユーザーに個別の商用ライセンスが必要です。
たとえば、UIデザイナー、テクニカルアーティスト、ソフトウェア開発者、テスト自動化エンジニアなど、役割によって必要なライセンスの種類は異なる場合がありますが、それぞれの利用者に有効なサブスクリプションライセンスが割り当てられている必要があります。
Qtのオープンソース版で書いたコードと、商用ライセンス版のコードを混在させることはできますか?
いいえ、できません。
オープンソース版Qtから商用ライセンス版Qtへの移行を希望される場合は、Qtの営業担当にご連絡ください。
このトピックに関しては、以下の公式FAQにも詳しく掲載されています:Qt商用ライセンスに関するFAQ
ライセンスの遵守状況に自信がなく、オープンソースライセンスの内容に混乱しています。どうすればよいですか?
お客様の状況についてお話を伺うことは可能ですが、法的なアドバイスにつきましてはご提供できかねますこと、あらかじめご了承ください。
オープンソースライセンスに精通した弁護士に相談し、プロジェクト全体を精査してもらうことを強く推奨します。
それにより、LGPLv# や GPLv# など、該当するオープンソースライセンスの義務を確実に果たせているかどうか判断することができます。
Qtのオープンソース版で開発したアプリケーションを、一般のアプリストアで配布することは可能ですか?
アプリストアごとに独自の利用規約があり、それがLGPLやGPLといったライセンス条件と必ずしも両立するとは限りません。
一方で、Qtの商用ライセンスは主要なアプリストアの利用規約と互換性があるため、クローズドソースのアプリケーションを各種ストアで配布する際には、商用ライセンスの利用が一般的に最適な選択肢となります。
オープンソース版で製品の開発を始めてしまったのですが、今から商用ライセンスを購入して、そのライセンスに移行することは可能ですか?
はい、可能です。
ただし、商用ライセンスで配布されるプロジェクトは、開発段階から商用版Qtで行われている必要があります。
すでにオープンソース版Qtで開発を始めている場合でも、コードベースをオープンソースライセンスから商用ライセンスに移行する方法について、一緒に最適な解決策を検討いたします。
開発を始める時点で、どのライセンスやバージョンを使用すべきか迷われた場合には、お問い合わせいただくことをおすすめします。お客様の開発ニーズに応じた最適な選択をご案内いたします。
LGPLv2とLGPLv3のライブラリを同じアプリケーションで併用することは可能ですか?
はい、可能です。
たとえば、それぞれを別々の共有ライブラリとして扱うことで、LGPLv2.1とLGPLv3のライブラリを同一アプリケーション内で併用できます。
このようにしても、各ライブラリのライセンスを変更する必要はなく、アプリケーション自体には、必要に応じて商用ライセンスを適用することも可能です。
GNUの互換性マトリックスでは、LGPLv2とLGPLv3を組み合わせることはできないと示されていますが?
LGPLv2.1とLGPLv3のコードを別々の共有ライブラリとして扱う場合には、同じアプリケーション内で併用することが可能です。
この構成であれば、アプリケーション自体には
商用ライセンス / LGPLv2.1 / LGPLv3 のいずれかを選択することができます。
参考: https://www.gnu.org/licenses/gpl-faq.html#AllCompatibility
使用しているLGPLやGPLのバージョンを気にするのは誰ですか?
あなた自身、そしてお客様やエンドユーザーが関係します(商用ライセンスでQtを使用している場合を除きます)。
LGPLやGPLはコピーレフト(copyleft)ライセンスであり、ライセンス条件があなたの製品やソリューションとともにお客様やユーザーにも引き継がれることを意味します。
そのため、どのバージョンのライセンスを使っているかを正しく理解し、義務を果たしていることは非常に重要です。