FireFly svn-1696 にパッチを当てる

日本で mt-daapd(FireFly) を使っている人は日本語化とかなんとか色々とやっているのかもしれないけど、自分は素の svn-1696 で困ってないのでこれを使ってる。
なので普通にパッチを当てれば良いのだろうけど iTunes 10 になった時のパッチを既に当ててあるし、今回の修正箇所も 2カ所だけと少ないからまた”手で”修正した。


ちなみに普通にパッチを当てるなら mt-daapd-svn-1696/src/plugins ディレクトリでこんな感じに。(21_itunes10.5.dpatch はダウンロードしてきたパッチファイル。)

[paraches@raphael plugins]$ patch < 21_itunes10.5.dpatch

古いバージョンを捨てて新しいバージョンをインストール

後は今までのものと入れ替えるだけ。
サービス止めて

[paraches@raphael mt-daapd-svn-1696]$ sudo /etc/init.d/mt-daapd stop
Shutting down DAAP server: 

アンインストールして

[paraches@raphael mt-daapd-svn-1696]$ sudo make uninstall

一応 configure して

[paraches@raphael mt-daapd-svn-1696]$ ./configure --enable-sqlite3

一連の make 作業

[paraches@raphael mt-daapd-svn-1696]$ make clean
[paraches@raphael mt-daapd-svn-1696]$ make
[paraches@raphael mt-daapd-svn-1696]$ sudo make install

で、サービススタート

[paraches@raphael mt-daapd-svn-1696]$ sudo /etc/init.d/mt-daapd start
Starting DAAP server:                                      [  OK  ]
[paraches@raphael mt-daapd-svn-1696]$ 

これで iTunes 10.5 でも曲リストが見えるようになったよ!

原因と今後の不安

Apple Support Communities での話では、iTunes 10.5 から daap の最初のやり取りの server-info コマンドで、SupportsUpdate フィールドの値を返さなくちゃいけなくなったらしい。
iTunes の今までのバージョンでは必要なかったみたいで、mt-daapd(FireFly) は SupportsUpdate フィールドの値を返していなかった。
でも、ソースコードの中には SupportUpdate を返すようにするコードも入っててコメントアウトされてたみたい。で、それをコメントでなくして、そうすると SupportsUpdate の情報の分、返り値のサイズが変わっちゃうのを調整してってのがパッチ。


というわけで原因がわかってパッチも出てるから、BUFFALOやアイ・オー・データなんかの(mt-daapd を使ってる?)NASファームウェアのアップデートとかで順次この問題に対応されるんじゃないのかな?


今回はこんな感じで iTunes の変化に対応できたけど、mt-daapd(FireFly) のメンテナンスされてない状況を考えると iTunes のコマンド関係の変更に今後ちゃんと対応して行けるかどうかがちょっと怖い感じ。