iTunes10にバージョンアップでfirefly(mt-daapd)の音楽配信がストップ

Posted by admin on 9 月 10, 2010 in Apple, FreeBSD, Mac |

アップルのサイトを覗くとiTunesがバージョン10になっていたので、軽い気持ちでバージョンアップを行った。
すべての音楽ファイルを、数台あるパソコンに重複して保存するのは効率が悪いので、自宅のOSがFreeBSDのファイルサーバーにportsからfireflyという音楽配信するサーバーソフトでサーバー内にある音楽ファイルをiTunesで聞けるようにしてある。
そのサーバーからの音楽配信が、iTunesのバージョンを10に上げたら、サイドバーの部分にサーバー名は見えるのだが、肝心の音楽ファイルが見えなくなってしまった。当然サーバーから音楽を聴く事もできない。
ちまたでは、forked-daapdというmt-daapd互換音楽配信ソフトならばiTunes10でも使う事ができるそうだ。
でも、私のサーバーはFreeBSDでソフトのインストールはportsで行っているがforked-daapdのportsコレクションはまだないようである。(2010/9現在)
現在使用しているfireflyでiTunes10に対応できないか調べてみると
アップルのサイトに次のようなコメントがあった。
http://discussions.apple.com/thread.jspa?threadID=2564925&start=60&tstart=0
————————————————————————————————-
Re: iTunes 10 breaks Firefly Media Server / mt-daapd
Posted: Sep 7, 2010 4:15 PM in response to: tecknobabble
Reply Email

These are the lines to change for mt-daapd-svn-1696 (the last nightly version released):

diff -u mt-daapd-svn-1696.original/src/plugins/out-daap-proto.c mt-daapd-svn-1696/src/plugins/out-daap-proto.c
— mt-daapd-svn-1696.original/src/plugins/out-daap-proto.c 2007-08-10 00:07:23.000000000 -0400
+ mt-daapd-svn-1696/src/plugins/out-daap-proto.c 2010-09-07 19:04:44.932978839 -0400
@@ -716,6 +716,8 @@
/* aeHV */
size += 9;

+ size += 12;
+
return size;
break;

@@ -920,6 +922,9 @@
if(daap_wantsmeta(pinfo->meta, metaSongContentRating))
current += dmap_add_char(current,”ascr”,
atoi(valarray[SG_CONTENTRATING]));
+
+ current += dmap_add_int(current, “aeMK”, 1);
+
return 0;
break;

After adding these two lines, iTunes 10 works for me.

Message was edited by: paraquat
——————————————————————————————————-
「/src/plugins/out-daap-proto.c」というファイルを見つけて「+」の部分を追加してやればiTunes10 でもWorksつまり動くという事だと思う。tecknobabbleさんありがとう!

まずは、fireflyを停止する。
#/usr/local/etc/rc.d/mt-daapd stop
portsのfireflyのディレクトリに移動
#cd /usr/ports/audio/firefly
いったんアンインストールしディレクトリを掃除する。
#make deinstall
#make clean
一応portsを最新のバージョンにしたいので、自分の場合は
#portsnap fetch && portsnap update
fireflyのバージョンは
#less /usr/ports/audio/firefly/Makefile
で見てみると
—————————————————————————–
# New ports collection makefile for: mt-daapd-devel
# Date created: 26 Nov 2007
# Whom: Mark Foster
# $FreeBSD: ports/audio/firefly/Makefile,v 1.5 2010/06/06 20:43:32 naddy Exp $
#
PORTNAME= firefly
PORTVERSION= 1696
PORTREVISION= 4
CATEGORIES= audio
—————————————————————————–
2010年6月に一部更新したようだ。
肝心な部分は2007年11月で停止しているようで、前回と同じ1696で変化なし。
目的のファイル「out-daap-proto.c」はどこだろう?一応/usr/ports/audio/fireflyのディレクトリでmakeして
#make
すると、「work」フォルダが現れる。「out-daap-proto.c」は探してみると
/usr/ports/audio/firefly/work/mt-daapd-svn-1696/src/plugins/
にあるので、
#cd work/mt-daapd-svn-1696/src/plugins/
行番号を表示させて内容をみるにはlessで-Nのオプションをつけて
#less -N out-daap-proto.c
716行目に注目して
——————————————————————————
715 if(daap_wantsmeta(pinfo->meta,metaItunesHasVideo))
716 /* aeHV */
717 size += 9;
718 size += 12;
719
720 return size;
721 break;
——————————————————————————-
行番号718行のように「size += 12;」を追加する。
次は行番号920行だけど、上で2行ほど挿入したので、
——————————————————————————-
921 if(daap_wantsmeta(pinfo->meta, metaSongContentRating))
922 current += dmap_add_char(current,”ascr”,
923 atoi(valarray[SG_CONTENTRATI
923 NG]));
924
925 current += dmap_add_int(current, “aeMK”, 1);
926
927 return 0;
928 break;
——————————————————————————–
行番号925行のように「current += dmap_add_int(current, “aeMK”, 1);」追記する。(ファイル内容の変更方法は各自に任せるが)
インストールしよう!
#cd /usr/ports/audio/firefly
#make install
設定は、前のまま残っているので、いきなりmt-daapdを起動する。(初めての場合は、設定ファイルを編集する必要があるので注意)
#/usr/local/etc/rc.d/mt-daapd start
iTunes10(MAC OSX版)からみると


fireflyのサーバーの音楽のファイル名が見れて、音楽が聴けるようになった。
まとめよう!
FreeBSDでFirefly(mt-daapd)を使ってiTunes10で音楽配信を行うには、「out-daap-proto.c」というファイルをちょこっと変更する事で動作する。
めでたし、めでたし!

FreeBSDサーバーでfireflyを使っていて面倒なことをしたくない人は、iTunes10のインストールをせずにバージョン9で過ごし、portsのfireflyがiTunes10に対応してから、それぞれをバージョンアップするのが良いだろう。

ps.サーバーの/var/log/messageを覗いてみると

mt-daapd[32658]: Write error: Broken pipeとエラーを吐いているが、前からのような気がする。

ps.2010年1月現在のportsコレクションのfireflyを入れ直したらiTunes10でエラーは発生していないので対応済みのようであるので、上記のような面倒な対応はしなくてよいようだ。

Tags: , , , ,

Reply

Copyright © 2012 リンゴ計算機が好き All rights reserved. Theme by Laptop Geek.