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

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

Mandriva Linux 2010.0のKDE4(Phonon)ではオーディオ出力先でPulseAudio以外を優先できない?(後半)

Mandriva Linux 2010.0のKDE4(Phonon)ではオーディオ出力先でPulseAudio以外を優先できない?(前半)」の続き。

  1. kcm_phonon.soを提供するパッケージにも修正を行ってビルド,インストール
  2. .specファイルの修正点
    1. phononの.specファイルに対する修正
    2. kdebase4-runtimeの.specファイルに対する修正
  3. 修正後のパッケージを用いた後のJACKを優先させる設定

kcm_phonon.soを提供するパッケージにも修正を行ってビルド,インストール

問題の/usr/lib(64)/kde4/kcm_phonon.soはkdebase-runtime(パッケージ名「kdebase4-runtime」)が提供するため、このパッケージをビルドしてシステム上のパッケージ(kdebase4-runtime,kdebase4-runtime-devel)を置き換えることでこの問題も解決したが、こちらにもPulseAudioのパッチが当たっているため、該当のパッチの適用とPulseAudioへの依存を外すように修正してビルドし直したものをインストールする必要があった(単純に再ビルドしようとするとビルドエラーになる)。

.specファイルの修正点

.specファイルの修正部分を差分形式で以下に貼り付ける。対象の(ソースRPM)パッケージは

  • phonon 4.3.50-18.2mdv2010.0
  • kdebase4-runtime 4.3.2-10mdv2010.0

の2つ。

phononの.specファイルに対する修正

--- phonon.spec.orig
+++ phonon.spec
@@ -1,13 +1,13 @@
 %define epoch_arts 30000001
 %define rev 1030942
 
-%define subrel 2
+##%define subrel 2
 
 Name: phonon
 Summary: KDE4 Multimedia Framework 
 Version: 4.3.50
-Release: %mkrel 18
-Epoch: 2
+Release: %mkrel 19
+Epoch: 3
 Url: http://phonon.kde.org/
 License: LGPLv2+
 Group: Graphical desktop/KDE
@@ -17,7 +17,7 @@
 Source1: %{name}-gstreamer.svg
 Patch0:  phonon-4.2.0-ogg-mime-type.patch
 # (cg) For the latest version of the below patch see: http://colin.guthr.ie/git/phonon/log/?h=pulse
-Patch2:  phonon-4.3-pulseaudio.patch
+#Patch2:  phonon-4.3-pulseaudio.patch
 Patch3:  phonon-4.3.50-phonon-allow-stop-empty-source.patch
 Patch4:  phonon-4.3.50-gstreamer-fix-changing-CD-audio-track2.patch
 Patch5:  phonon-4.3.50-gstreamer-fix-titles2.patch
@@ -30,7 +30,7 @@
 BuildRequires:  glib2-devel
 BuildRequires:  libxml2-devel
 BuildRequires:  imagemagick
-BuildRequires:  pulseaudio-devel
+#BuildRequires:  pulseaudio-devel
 
 %description
 Phonon is the KDE4 Multimedia Framework
@@ -90,7 +90,7 @@
 Requires: gstreamer0.10-plugins-ugly
 Suggests: gstreamer0.10-ffmpeg
 Suggests: gstreamer0.10-soup
-Suggests: gstreamer0.10-pulse
+#Suggests: gstreamer0.10-pulse
 %if %mdkversion >= 201000
 Obsoletes:      arts < %epoch_arts:1.5.10-9
 Obsoletes:      arts3 < %epoch_arts:1.5.10-9
@@ -116,7 +116,7 @@
 BuildRequires: libxine-devel
 Obsoletes: kde4-phonon-xine < 1:3.93.0-0.714129.2
 Requires: xine-plugins
-Suggests: xine-pulse
+#Suggests: xine-pulse
 Provides: phonon-backend = %epoch:%version
 
 %description -n phonon-xine
@@ -162,7 +162,7 @@
 %prep
 %setup -q  -n %name-%version
 %patch0 -p0
-%patch2 -p1
+#%patch2 -p1
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1

Suggestsパッケージ*1など、依存を外す必要はないかもしれないが、好みで外している(あまり深い意味はない)。

kdebase4-runtimeの.specファイルに対する修正

--- kdebase4-runtime.spec.orig
+++ kdebase4-runtime.spec
@@ -3,7 +3,7 @@
 Name: kdebase4-runtime
 Summary: K Desktop Environment - Base Runtime
 Version: 4.3.2
-Release: %mkrel 10
+Release: %mkrel 11
 Epoch: 1
 Group: Graphical desktop/KDE
 License: GPL
@@ -12,7 +12,7 @@
 Patch0: kdebase-runtime-4.1.1-fix-htsearch-path.patch
 Patch1: kdebase-runtime-4.2.95-fix-desktop-files.patch
 # (cg)  For the latest version of the below patch see: http://colin.guthr.ie/git/runtime/log/?h=pulse
-Patch2: kdebase-runtime-4.3.1-backend-globalconfig.patch
+#Patch2: kdebase-runtime-4.3.1-backend-globalconfig.patch
 Patch3: kdebase-runtime-nepomuk-strigi2.patch
 Patch4: kdebase-runtime-nepomuk-strigi-smartfile.patch
 Patch5: kdebase-runtime-4.3.2-knotify-fix-cpu-charge.patch
@@ -54,7 +54,7 @@
 BuildRequires: boost-devel
 BuildRequires: xrdb
 BuildRequires: qimageblitz-devel
-BuildRequires: pulseaudio-devel
+#BuildRequires: pulseaudio-devel
 BuildRequires: openslp-devel 
 Requires: kdelibs4-core
 Requires: oxygen-icon-theme
@@ -268,7 +268,7 @@
 %patch0 -p1
 %patch1 -p0
 %if %mdkversion >= 201000
-%patch2 -p1 -b .pulseaudio
+#%patch2 -p1 -b .pulseaudio
 %endif
 %patch3 -p1 -b .nepomuk
 %patch4 -p0 -b .nepomuk

修正後のパッケージを用いた後のJACKを優先させる設定

修正したパッケージをインストール後、システム設定の「マルチメディア」でバックエンド設定で

Xineを優先するようになっていることを確認して

JACKを一番上に持ってくる。その後「デバイスのリストを適用...」ボタンを押してそのまま設定を他のカテゴリに適用(コピー)する。
これでPulseAudioの動作状態に関わらずJACKを出力先として指定できるようになった。

使用したバージョン:

  • phonon 4.3.50-18.2mdv2010.0
  • kdebase4-runtime 4.3.2-10mdv2010.0

*1:必須ではなく、外すことも可能だが、緩い依存として基本的には一緒にインストールされるもの