FreeBSD Daily Topics

2009年3月24日Amarok2ビルド方法とトラブルシューティング

tips

Amarok2

先日、新しく作り直された最新のミュージックプレーヤであるAmarok2のportがPorts Collectionに追加されました。ただし、現状のAmarok2 portには作りに甘いところがあり、GnomeのようにKDE以外の環境を使っている場合、UIが汚くなったり音がでないという問題があります。ここではGnomeのようにKDE以外の環境を使っている場合にAmarok2をビルドして使うための方法を説明します。

  • Amarok2(audio/amarok-kde4)
  • KDEBase4(x11/kdebase4、x11/kdebase4-runtime、x11/kdebase4-workspace)
  • Phononバックエンド(multimedia/phonon-xine、multimedia/phonon-gstreamer+multimedia/gstreamer-plugins*)

まずAmarok2をインストールします。

Amarok2インストール
# cd /usr/ports/audio/amarok-kde4/
# make install clean

この状態で起動するとアイコンなどのデータがインストールされていないため、表示されるUIが汚いものになります。KDE4をインストールしていない場合、KDEBase4(x11/kdebase4-runtime)をインストールすることでこれらデータをインストールできます。

KDE4 アイコンなどのデータインストール
# cd /usr/ports/x11/kdebase4-runtime/
# make install clean

x11/kdebase4-runtimeは必要最小限のデータしかインストールしません。systemsettings(1)などでKDE4テーマを変更してAmarok2のテーマを変更したい場合、さらにx11/kdebase4-workspaceをインストールしておきます。容量やインストールされるファイルの多さを気にしないのであればx11/kdebase4をインストールしておいてもかまいません。

KDE4はマルチメディアフレームワームにPhononを使います。この状態ではバックエンドエンジンがインストールされていないため、このままでは音がなりません。バックエンドにはmultimedia/phonon-xineとmultimedia/phonon-gstreamerの2つがあります。Amarok2を使う場合、もともとのバックエンドがXineだったこともありmultimedia/phonon-xineの方がベストです。

Phonon Xineバックエンドインストール
# cd /usr/ports/multimedia/phonon-xine/
# make install clean

動作するようならmultimedia/phonon-gstreamerとmultimedia/gstreamer-plugins*をインストールしてもかまいません。どちらのバックエンドをデフォルトで使うかはsystemsettings(1)で設定できます。systemsettings(1)を使いたい場合はx11/kdebase4-workspaceかまたはx11/kdebase4もインストールしておきます。

KDE4関連のコンポーネントは従来のKDE3との衝突を避けるために/usr/local/kde4/以下にインストールされます。このため環境変数PATHに/usr/local/kde4/bin/を追加してamarokコマンドが実行できるようにします。

環境変数PATHに/usr/local/kde4/bin/を追加
% export PATH=/usr/local/kde4/bin/:${PATH}

Amarok2のコマンド名はamarokです。同コマンドを実行してAmarok2を起動します。

 Amarok2実行例
図 Amarok2実行例

Amarok2はAmarok1.4と比べてUIが新しいものへ置き換わっています。プレイリストが右により、中央部分は自由に配置できるガジェットエリアになっています。日本語の歌詞も取得できるようになりました。なめらかで美しいUIエフェクトも魅力的です。

migration

Move to Amarok2 from 1.4

KDE3とKDE4では設定が保存される領域が異なります。このため、Amarok1.4で使っていたプレイリストやポッドキャストデータ、カバーイメージなどはAmarok2では使えません。

Amarok1.4のデータをAmarok2でも使いたい場合は~/.kde/share/apps/amarok/にAmarok1.4のデータが~/.kde4/share/apps/amarok/にAmarok2のデータが保存されていますので、適宜データをコピーして使ってみてください。

なお、Amarok1.4で実装されていたラベル機能はまだAmarok2には実装されていません。またデータの移行にともなってタグデータが壊れることもあるようです。Amarok2に移行する場合、音楽データはバックアップを取っておくなどしてデータが壊れた場合に備えておいた方がいいといえます。実際に使った感じでは特定の操作でAmarok2が落ちることがあります(たとえばプレイリスト関連の操作など⁠⁠。安定した動作を望む場合は、しばらくはAmarok2ではなくAmarok1.4を使い続けたほうが良いといえそうです。

troubleshooting

boost conflicts

Amarok2のビルドにあたって、devel/boostがすでにインストールされているためdevel/boost-pythonがインストールできないという状況になることがあります。これはgraphics/libopenrawなどグラフィック系のソフトで使われているライブラリがdevel/boostに依存しているものの、Amarok2が使うライブラリはdevel/boost-pythonを使っているためです。

この場合、次のようにportupgrade(1)を使ってboostをboost-pythonへ入れ換えることで対処できます。

portupgrade(1)を使ってboostをboost-pythonへ入れ換える
# portupgrade -f -o devel/boost-python boost-1.34.1
libxine build fail

Phonon Xineバックエンドを使う場合、multimedia/libxineが依存関係でインストールされますが、最近の8-currentではビルドできません。これは8-currentに搭載されているgccのチェックがこれらソフトウェアのビルドを許さないからで、libxine以外にも8-currentではビルドできないアプリケーションがいくつか出てきています。

port側でパッチをあてるか本体に対処パッチを取り込んでもらうのが筋の良い解決方法ですが、ワークアラウンドとしてはビルドに使うgccのバージョンを下げるというテクニックが使えます。たとえば次のような設定を/etc/make.confに追加することで、gcc 4.2.1ではビルドできないアプリケーションをgcc3.4.6でビルドさせるといったことができるようになります。

特定のportのビルドに他のバージョンのGCCを使わせる設定例:/etc/make.confに追加する
.if ${.CURDIR} == "/usr/ports/graphics/gegl" || \
    ${.CURDIR} == "/usr/ports/multimedia/libxine" || \
    ${.CURDIR} == "/usr/ports/graphics/gimp-app" || \
    ${.CURDIR} == "/usr/ports/lang/mono"
CC=gcc34
.endif
USB2 issue

8-currentではデフォルトのUSBスタックがUSB2へ切り替わった他、ライブラリも変更になりました。この変更後に対象となるライブラリにリンクしているにもかかわらず再構築しなかったライブラリがビルドできないといったエラーを出力することがあります。Amarok2のビルドで依存しているライブラリ(たとえばaudio/libmtp)がこのエラーを出力することがあります。その場合はportupgrade -fを使って対象のライブラリを再構築してからもう一度Amarok2をビルドしてみてください。

USBライブラリ関連でエラーが出たlibmtpを再度ビルドする例
# portupgrade -f libmtp-0.3.1_1
Low graphic issue

上記画像のようにプレーボタンがなめらかな表示にならず、ギザギザの表示になることがあります。原因は特定していませんが、Amarok2 portからgraphics/gl*系のライブラリへの依存関係が含まれていないことが原因ではないかと見られます。この現象が出た場合、graphics/gl*系のライブラリをインストールしてからAmarok2をビルドしてみてください。

heads-up

Future Change

ここには2009年3月23日現在のPorts Collectionおよび8-currentをベースにした内容をまとめてあります。現段階でAmarok2 portのメンテナとコミッタによってこうした手動でのインストールが不要になるように依存関係への追加が検討されているほか、次のKDE4コミットに合わせてx11/kdebase4-runtimeからアイコンデータを分離してもっと少ないインストールで済むように改変が予定されています。

このため近い将来、こうした手間は不要になるか、または依存でインストールすべき対象が変更になる可能性があります。KDE4 portの次のアップグレード後やAmarok2 portのアップグレード後に試す場合は、適宜状況を置き換えて作業してみてください。

おすすめ記事

記事・ニュース一覧