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 cleanx11/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は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のアップグレード後に試す場合は,適宜状況を置き換えて作業してみてください。
FreeBSD Daily Topics
- 2009年3月30日 4/2のjus勉強会でPorts Collection発表,FreeBSDにRAID5登場 - 最新版Gvinumマージ,DELL BMC/IPMI機能をLinuxツールから操作可能に他
- 2009年3月27日 eAcceleratorでPHP高速化,Hammer FSをLinuxへ移植,NVIDIA OpenGL 3.0/3.1 for FreeBSD,KDEリポジトリPC-BSDへ移動
- 2009年3月25日 カーネルパニックを実現する脆弱性と,Jailブレイクやセキュリティ機能バイパスにつながる脆弱性
- 2009年3月24日 Amarok2ビルド方法とトラブルシューティング
- 2009年3月19日 FreeBSD 7.2-RELEASEのスケジュール公開 5月4日にリリース予定,FreeBSD 8.0-RELEASEは8月以降にずれ込む見通し
- 2009年3月17日 Tomahawk Desktop OS - FreeBSDベースへ転身,ソフトウェアRAID5機能1,2週間後にcurrentにマージ
- 2009年3月16日 ≪Tips≫linux_base-f8をインストールして使う方法(日本語ロケール設定,日本標準時設定あり)≪注目≫AsiaBSDCon2009開催報告・勉強会告知
- 2009年3月12日 IGMPv3/SSM機能登場,マルチパスフェールオーバクラスタノード向け新しいiSCSI target istgt登場,ATI Radeon R600/R700対応コードカーネルにマージ(2D描画高速化),Amarok 2登場,Monkeysphere登場
- 2009年3月11日 木曜と金曜はAsiaBSDCon2009チュートリアル 当日参加も,FreeBSD Diskスケジュール機能更新 広く試験募集,MythTVアップグレード方法他
- 2009年3月10日 QEMU 0.10.0登場,KDE 4.2.1登場,Samba 3.3登場,Firefox/Opera/PHPセキュリティ対応,YouTube BSDチャンネル追加他

