Qt 5.0.1 リリース

Qt 5.0.1 がリリース されました。基本的には 5.0.0 のバグ修正版になりますが、それ以外にも以下の違いがあります。

  1. QtMultimedia モジュールに対するバイナリ互換性の変更
  2. MinGW 版バイナリパッケージの追加

Qt では本来は同じメジャーバージョン内ではバイナリ互換性を維持することになっていますが、QtMultimedia モジュールで見つかったミス(インターフェースとなる基底クラスのデストラクタが virtual ではない)のため、メモリリークが発生することから今回は例外としてバイナリ互換性を破壊する修正を取り込んでいます。QAudioSystemFactoryInterface や QMediaServiceProviderFactoryInterface を継承したコードを 5.0.0 で書いていた人は 5.0.1 で再コンパイルしてください。

また、MinGW 用バイナリが用意されました。最新の MinGW が必要となったことから、4.7 プレリリース版を同梱しているため 800MB を超える巨大なパッケージとなってしまいましたが……。

今回から変更履歴が各モジュールごとに分割されています。なお、5.0.0 のパッケージにあったメンテナンスツールでのアップデートは出来ませんので、アップデートには 5.0.0 のアンインストールと 5.0.1 のインストールが必要になります。

Qt Quick 2 のスピード

Qt5 の目玉である Qt Quick 2 は OpenGL や QML Scene Graph、V8 JavaScript エンジンの採用でパフォーマンスを Qt Quick 1 から大幅に向上させています。とは言うものの、バグや Mesa のようなソフトウェア 3D エンジンの利用などで Qt Quick 1 よりも遅くなることもあります。

は Qt Quick 2 でアプリが遅くなったことに関する質問から始まったやりとりですが、その中で Qt5 では上記以外にどのようなテクニックを使って Qt Quick のパフォーマンスの改善を行っているかの説明があります。興味深い内容ですので、要約してみましょう。

“Qt Quick 2 のスピード” の続きを読む

セキュリティアドバイザリー: トルコの不正中間証明書への対策

トルコの認証局 Türktrust が誤って不正な中間 CA 証明書を発行していた問題について、セキュリティアドバイザリーがアナウンスされています。

5.0.0 を含むすべてのバージョンの Qt に影響します。この問題では該当する証明書を元になりすましなどの攻撃が行われる可能性があります。

対策としてはまもなくリリース予定の 5.0.1 や 4.8.5 を利用するか、パッチ を適用してください。なお、パッチにはテスト用のファイルも含まれているため、リポジトリではなくリリースされているアーカイブのソースに適用する場合エラーが発生すると思いますが、src/network/ssl/qsslcertificate.cpp にパッチが適用されていれば問題有りません。

“セキュリティアドバイザリー: トルコの不正中間証明書への対策” の続きを読む

Qt5 の Input Method

先日の勉強会 では話題にするのをすっかり忘れていましたが、Qt5 では Input Method も大きく変更されています。思ったよりも調査に時間がかかったため遅くなってしまいましたが、簡単な説明資料を作成しておきました。不明点など有りましたら質問してください。

基本的には以下の目的を満たすように設計し直されています。

  • QtGui と QtWidgets の分離に合わせて、QWidget 依存の削除
  • アプリとの連携機能の強化

とはいえ、組み込み等で Input Method を作成していた人や細かな制御を行っていたような一部の人を除けば、(特にデスクトップ系では) API の変更が直接影響するケースは少ないと思います。(間接的には QPA への移行などによるコード変更によって、挙動に問題が生じていないかは気をつけた方がいいかもしれません。)

“Qt5 の Input Method” の続きを読む

Qt 5 のサポートアーキテクチャの今後

Qt5 の QAtomicIntQAtomicPointer では Qt4 とのソース互換性が無いことを受けて、新しい QAtomic 系クラスに対応していないアーキテクチャへのサポートの将来的な停止が Qt Core モジュールのメンテナである Thiago Macieira から提案されました。

現在その対象となっているのは以下のアーキテクチャです。

  • Integrity
  • VxWorks
  • Alpha
  • Blackfin
  • POWER and PowerPC
  • S/390
  • SH-4a
  • SPARC

メールでは 5.1 で利用停止を推奨し、5.2 で古いコードの削除が提案されています。もっとも、削除した場合でも C++11 の std::atomic や gcc の機能を使った実装があるため、それらのアーキテクチャでは全く動かないということにはならないようです。

Qt5 の QtWebKit の SQLite 依存について

WebKit は以前から(Qt に関係無く)、SQLite に依存していたのですが、Qt 5 でその依存性の解決方法を変更したとのことです。QtWebKit 単体でクロスコンパイルや Windows でビルドする場合に影響があるようなので、注意してください。

[Development] heads-up: QtWebKit’s SQLite dependency

新しい方法では以下の順番で検索するそうです。

  1. pkg-config を使って SQLite を検索。ただし、Mac では標準の SQLite を使う。
  2. Qt5 のソースツリー内の QtWebKit をビルドする場合、qtbase/src/3rdparty/sqlite にある SQLite を使う。
  3. SQLITE3SRCDIR 環境変数が指し示す SQLite を使う。

Visual Studio Add-In 1.2.0 for Qt 5 リリース

Qt 5.0.0 のリリース にあわせて、Qt5 に対応した Visual Stuido Add-In がリリース されています。

(Express 以外の) Visual Studio 2008, 2010, 2012 に対応しています。

なお、Qt4 には対応していませんので、Qt4 メインの人は引き続き VS Add-In 1.1.x を使用してください。試せる環境がないので分かりませんが、おそらく共存は出来ないと思います。

Qt 5.0.0 リリース

Qt 5.0.0 がリリース されました。

OpenGL の活用を中心にいろいろなところが変化した Qt 5 ですが、リリースの携帯も変更になっています。今回のリリースではバイナリパッケージが SDK 形式になっていて、Qt 5.0.0 のバイナリに加えて(Qt 5.0.0 でビルドされた)Qt Creator 2.6.1 も同梱されています。おそらく今後のアップデートは以前の Nokia SDK のようになると思われます。Qt 4.8 向けの環境もあるといいのですが。

Qt Project では既に 5.0.1 と 5.1 に向けて動き始めています。5.0.1 は一月の中旬、5.1 は四月末か五月の始め辺りが目処でしょうか。バグなどを見つけたら フィードバック しましょう。

“Qt 5.0.0 リリース” の続きを読む

Qt 5.0.0 RC1 リリース

Qt Developer Days 2012 North America の開催に合わせて、Qt 5.0.0 RC1 がリリース されました。

Beta2 からは様々なバグ修正と ドキュメントの刷新、サンプルの充実などが主な変更点になります。Qt 5.0 の API はこれで決定となります。まだいくつか 既知の問題点 はありますが、この後大きな問題が無ければそれらなどが修正されて年内にも正式リリースされる見込みです。

Qt4 からの変更点は 変更履歴 を参照してください。ソース互換性のない場所なども書かれています。

是非、試して フィードバック を。これが最後のチャンスです。また、翻訳 もよろしく。