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

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

x86_64版Mandriva Linux 2009.0上におけるx86_64版Flash使用時のPulseAudioへのオーディオ出力について

  1. libflashsupportによりx86_32版のプラグインは標準対応
  2. x86_64版では動作しない?
  3. x86_64向けのlibflashsupportをビルドして解決
  4. .specファイルの修正について

libflashsupportによりx86_32版のプラグインは標準対応

Flash 9からはlibflashsupportというパッケージを導入することにより、PulseAudioデーモンが動いているときに自動的にPulseAudioへFlashのオーディオを出力するようになっている。Webブラウザの動作中にPulseAudioデーモンを開始したときには音がすぐには出ないことがあるが、ブラウザの再起動後には音が出るようになる。

x86_64版では動作しない?

x86_32版のプラグインでは「libflashsupport」というi586のパッケージがあるのでこれを使えばPulseAudioから音声を出力することができるのだが、x86_64版のFlashプラグインを使用した場合は出力されない。

x86_64向けのlibflashsupportをビルドして解決

この問題については、x86_64版のlibflashsupportをビルドとしてインストールすることで解決することができた。
Mandriva Linux 2009.0の時点ではx86_64向けのlibflashsupportはパッケージに用意されていないため、作業の流れとしては

  1. libflashsupportのソースRPMをインストール
  2. 展開されたファイルの内、.specファイル(libflashsupport.specを一部編集・修正点は後述)
  3. x86_64上でrpmbuildを使用してパッケージをビルド
  4. i586版libflashsupportがあれば削除
  5. ビルドしたRPMパッケージをシステムにインストール

となる。
将来的には、x86_64版Flashが正式リリースとなることで、libflashsupportのx86_64版パッケージも出てくるのではないかと思われる。

.specファイルの修正について

(Mandriva Linux 2009.0に入っている)バージョン0-20070927.2mdv2009.0の時点では

$ alias rpmbuild-spec2rpm='rpmbuild -bb --clean'
$ LC_MESSAGES=C rpmbuild-spec2rpm SPECS/libflashsupport.spec 
error: Architecture is not included: x86_64

となり、x86_64向けにはビルドできない。これは

ExclusiveArch: i586

という行によりi586以外のアーキテクチャを弾いているのが原因で

ExclusiveArch: i586 x86_64

とすることでx86_64上でも正常にビルドができ、x86_64向けのRPMパッケージが作成される。
作成したRPMパッケージと修正したソースRPMパッケージは別館の配布ページに公開した。
(2015/1/8)配布ページは削除済み。

使用したバージョン: