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

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

Compiz Fusion 0.7.4のインストール時の覚え書き

Compiz Fusionの開発版、バージョン0.7.4が出ている。Compiz(中心のウィンドウマネージャ)もバージョン0.7.4になった。
変更点などは

あたりを参照。
「Bicubic filter」プラグインを有効にすると画質が良くなる(特にズーム時)が、やや重かった。

  1. KDE4のウィンドウ装飾プログラムのビルドに失敗する件について
  2. 設定マネージャ上で一部アイコンが出なくなった件について

KDE4のウィンドウ装飾プログラムのビルドに失敗する件について

Gentoo Linuxの「desktop-effects」Overlayにバージョン0.7.4が入ったため、これを入れようとしたのだが、Compizに含まれるKDE4向けのウィンドウ装飾プログラム(kde4-window-decorator)*1のビルドでエラーになった。

Making all in window-decorator-kde4
make[3]: Entering directory `/var/tmp/portage/x11-wm/compiz-0.7.4/work/compiz-0.7.4/kde/window-decorator-kde4'
x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DQT_SHARED -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/qt4 -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui   -I/usr/kde/4.0/include/    [CFLAGS] -Wall -D_FORTIFY_SOURCE=2 -MT decorator.moc.o -MD -MP -MF .deps/decorator.moc.Tpo -c -o decorator.moc.o decorator.moc.cpp
decorator.moc.cpp:20: error: expected constructor, destructor, or type conversion before 'static'
decorator.moc.cpp:62: error: 'qt_meta_data_KWD__Decorator' was not declared in this scope
decorator.moc.cpp:102: error: expected constructor, destructor, or type conversion at end of input
make[3]: *** [decorator.moc.o] Error 1

拡張子「.moc.cpp」のファイルは、GUIツールキットQtに含まれる「Meta-Object Compiler」と呼ばれるツール(mocコマンド)がビルド時に動的に生成するファイルで
[引用]ファイル名: compiz-0.7.4/kde/window-decorator-kde4/window.moc.cpp より

/****************************************************************************
** Meta object code from reading C++ file 'window.h'
**
** Created: Thu Apr 3 17:05:37 2008
**      by: The Qt Meta Object Compiler version 59 (Qt 4.4.0-snapshot-20080306)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/

Compiz 0.7.4のソースツリーに(何故か)はじめから入っている.moc.cppファイルはQt 4.4系により作成されているようだが、手元のQt(4系)のバージョンは4.3.4だったため、この不一致によりエラーが出たのではないかと思い、既存の.moc.cppファイルを試しに消してみることにした。

$ rm [compiz-0.7.4の場所]/kde/window-decorator*/*.moc.cpp -f

これでビルドをし直したところ、システム上のmocにより該当ファイルが再作成され、ビルドは正常に通った。
Gentoo Linuxの「desktop-effects」Overlayのebuild(2008/4/8取得)向けの差分としては

--- [laymanのディレクトリ]/desktop-effects/x11-wm/compiz/compiz-0.7.4.ebuild.orig
+++ [laymanのディレクトリ]/desktop-effects/x11-wm/compiz/compiz-0.7.4.ebuild
@@ -13,7 +13,7 @@
 LICENSE="GPL-2 LGPL-2.1 MIT"
 SLOT="0"
 KEYWORDS="~amd64 ~x86"
-IUSE="dbus fuse gnome gtk kde svg xcb"
+IUSE="dbus fuse gnome gtk kde svg xcb kde4"
 RESTRICT="mirror"
 
 DEPEND="
@@ -39,16 +39,10 @@
 		|| ( kde-base/kwin:3.5
 			kde-base/kdebase:3.5 )
 			dev-libs/dbus-qt3-old )
-	kde4? (	kde-base/kdebase:kde-svn )
+	kde4? (	>=kde-base/kwin-4.0.1:kde-4 )
 	svg? ( gnome-base/librsvg )
 	xcb? ( x11-libs/libxcb )
 	"
-#	kde4? (
-#		|| (
-#			>=kde-base/kwin-4.0.1:kde-4
-#			kde-base/kwin:kde-svn
-#			kde-base/kdebase:kde-svn
-#			) )
 
 RDEPEND="${DEPEND}
 	x11-apps/mesa-progs
@@ -74,6 +68,9 @@
 	eautoreconf || die "eautoreconf failed"
 	intltoolize --copy --force || die "intltoolize failed"
 	glib-gettextize --copy --force || die "glib-gettextize failed"
+
+	# "*.moc.cpp" files cause compile error
+	rm kde/window-decorator*/*.moc.cpp -f
 }
 
 src_compile() {

となる。

設定マネージャ上で一部アイコンが出なくなった件について

最近、CompizConfig Settings Manager(CCSM)プラグインアイコンが出なくなり、

更に、バージョン情報ダイアログを開こうとしてもダイアログは出ずに

Traceback (most recent call last):
  File "usr/lib64/python2.5/site-packages/ccm/Pages.py", line 1135, in ShowAboutDialog
  File "usr/lib64/python2.5/site-packages/ccm/Widgets.py", line 1310, in __init__
gobject.GError: 画像の種類 'svg' はサポートされていません

と出るようになってしまった。
これは
http://web.archive.org/web/20070812062818/http://www.liris.org/blog/berylE381A7vistaE38288E3828AE381B7E3828BE38293E381B7E3828BE38293/
を参考に、librsvgを入れ直したところ、無事解決した。

*1:これを使用すると、KDE4上で、KDE標準ウィンドウマネージャKWinと同じ装飾とメニューが使用できる