試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Qt4のQt3サポートを必要とするアプリケーションは少ない?

  1. Qt4のQt3サポートライブラリについて
  2. 公式のPortageツリーを調べると...
  3. Qt4 immoduleとQt3サポート(uimとSCIM-Bridge)
  4. Qt Configuration(qtconfig)
  5. KDE4

Qt4のQt3サポートライブラリについて

Qt4は、前バージョンのQt3と互換性のない部分が多く、Qt3アプリケーションの開発者はQt4に対応させるためのコードの大幅な書き直しが必要となっている。そのため、Qt3互換のライブラリがQt4の中に用意されている。
Gentoo Linuxebuildでは、「USE=qt3support」でビルドすることでこれを有効にできるのだが、ビルド時間が大幅に増加するため、自分の使用するアプリケーションがこれを使用するのでなければ外してしまうのがよさそう。

公式のPortageツリーを調べると...

Overlayは含めず、公式のPortageツリーから検索したところ、意外にヒット数は少なかった。
qgrep -N qt3support」の結果を参考にすると、下のようになった。バージョン部分は最新版のものを表記している。
2008/1/14時点での公式Portageツリー内のQt3サポート依存パッケージ
パッケージとバージョンURL説明
app-admin/keepassx-0.2.2-r1http://www.keepassx.org/パスワードマネージャ
games-kids/cubetest-0.9.4http://www.vandenoever.info/software/cubetest/立方体に関する小学生向け学習?ソフト
media-sound/musescore-0.7.0.1*1http://mscore.sourceforge.net/譜面エディタ
net-im/psi-0.11_pre20070314http://psi-im.org/Jabberメッセンジャークライアント
x11-misc/vym-1.10.0-r1http://www.insilmaril.de/vym/考えなどを図として作成(段階的に移行中?)

Qt4 immoduleとQt3サポート(uimSCIM-Bridge)

Qt4のQt3サポートを外すと、Subversion版(リビジョン5125時点)uimのQt4 immoduleはビルドできなくなってしまった。これも上のリストに加えてQt3サポート依存パッケージとなる。

g++ -c -pipe [CXXFLAGS] -W -Wall -Wchar-subscripts -Wnon-virtual-dtor -Wno-long-long -Wcast-align -Wconversion -Wpointer-arith -Wwrite-strings -Wformat-security -DNDEBUG -D_REENTRANT -Wall -W -fPIC -DQT_NO_DEBUG -DQT_PLUGIN -DQT_QT3SUPPORT_LIB -DQT3_SUPPORT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4/Qt3Support -I/usr/include/qt4 -I../../../uim-svn-1.5 -I../../uim -I../../replace -I. -I. -o qhelpermanager.o qhelpermanager.cpp
qhelpermanager.cpp:39:21: error: Q3PtrList: No such file or directory
In file included from qhelpermanager.cpp:49:
quiminfomanager.h:36:23: error: Q3ValueList: No such file or directory
In file included from plugin.cpp:49:
quiminfomanager.h:36:23: error: Q3ValueList: No such file or directory
quiminfomanager.h:52: error: ISO C++ forbids declaration of 'Q3ValueList' with no type
(以下エラーが続く)

一方で、SCIM-BridgeのQt4 immoduleではQt3サポートが不要。動作状態も良好。

Qt Configuration(qtconfig)

(2008/1/15)qtconfig設定ツールはQt3サポートが必要で、バージョン4.3.3の時点でも同様。テーマ変更などの設定が行えないと不便というのであれば、外さないほうがよいということになる。
参考URL:

KDE4

(2008/2/27)KDE4は、その基盤となるkdelibsというライブラリが(4.0.1の時点では)Qt3サポートを要求するため、KDE4を使用するには必須となっていることが分かった。

使用したバージョン:

  • Qt 4.3.2(4.3.2-r1), 4.3.4
  • SCIM-Bridge 0.4.14
  • uim Subversion r5125
  • kdelibs 4.0.1(4.0.1-r1)

*1:「pro-audio」Overlayにバージョン0.8.0があるが、Qt3サポートに依存している