netatalk 3.0の開発に少しだけ貢献しました
Netatalk 3.0alpha3のインストールをしました。
それで、いつもの手順でテストしていたところ、afp.confで非ASCII文字のボリューム名を設定すると、TimeMachineで正しく表示できない事がわかりました。
設定ファイルでは、[私のタイムマシーン]となっているのに、TimeMachine環境設定では「???#1」と表示されています。
2012-05-14 21:32
その様子を記事にしていたところ、HATさんがこの記事を読んでくれて、現象を確認してくださいました。
2012-05-14 22:08
その後、暫定対処方法を送っていただき、その方法で文字化けが直る事を確認しました。
2012-05-15 01:17
さらに、HATさんがBUG FIXのためのパッチを作ってくださりました。
2012-05-15 01:45
私がパッチをあて、コンパイルし直し、動作報告をしました。
2012-05-15 22:49
最新レポジトリにcommitされました。
ちゃんと、私の名前(Oichi)を入れてくれました!
「Zeroconf could not advertise non-ASCII time machine volume name, suggested by Oichi」
おぉ〜、なんだかすごいです。私も、netatalkの開発の最前線にいました。
BUGの原因は、ボリューム名の宣言をする部分の文字コードの変換部分の書き間違いだったと思われます。
現在の、私のafp.confは、次のようになっています。
;
; Netatalk 3.x configuration file
;
[Global]
vol preset = 全ボリュームのデフォルト
log level = default:note
log file = /var/log/netatalk.log
[全ボリュームのデフォルト]
file perm = 0600
directory perm = 0700
[Homes]
basedir regex = /home
[私のタイムマシーン]
path = /karmic/afp/time_capsule
time machine = yes
vol size limit = 1024
[みんなの共有はここ]
path = /karmic/afp/shared
file perm = 0666
directory perm = 0777
TimeMachine環境設定で、正しくディスク名が表示されています。
きちんとバックアップディスクとして使えました。
ただ、ボリュームサイズを1 GiB (230バイト)としていますので、バックアップは容量不足で終了します(正しい動作)。
今回のようにして、改善されていくのですね。
HATさんのウェブサイトによると、netatalkの開発をしているのはFrank Lahmさんだけで、HATさんが細かいBUG FIXをされていると言う事です。
BUFFALOやIODATAって、netatalkを使ったMac対応のNASを販売して儲けを得ているのですから、開発者にフィードバックをすれば良いと思うのですが、どうなんでしょうか?
寄付をするとか、ユーザーからのバグ報告を開発者に連絡するとか。
はっきり言って、ただ乗りですよね…。
この辺りの話は、次の記事のコメントをご覧ください。
私が、netatalkに関わる理由は、趣味です。インストールして、動作確認して、記事を書くのが楽しみになっています。
趣味と言っても、最終目的があって、それに向けての事前準備なのです。
素直にTimeCapsuleを買った方が、遥かに簡単なのですが、自分でいろいろいじった方が楽しいです。
[amazonjs asin="B0057D4R3Q" locale="JP"]自分でやろうとすると、いろいろ調べたり、実験したりで、時間がかかります。時間対効果を考えると、絶対NASを買った方が効率的だと思います。
でも、ギャンブルとかで時間を浪費するよりは、ずっと自分のためになると思っているので、作業を続けています。
私は、Netatalk-devel (Netatalk開発者用メーリングリスト(英語))に登録しました。
このページで、mailアドレスとパスワードを入力します。そして、Subscribeを押します。
しばらくすると、確認メールが届きます。
そのまま返信するか、指定されたURLにアクセスすると、承認されます。
最初に入力したパスワードは、メールで平文で返ってきちゃいます(-_-#)。
メーリングリストに参加した物の、どうなるかわかりません。ちょっと、様子を見てみようと思います。
ディスカッション
そうなんでしょうか。
ヘタなNASを買ってOSのアップデートに時間をさくぐらいなら、
安物AT互換機にUbuntuやFedora等のアップデートの速いOSを入れて大容量HDDで使うのが
一番楽だと思うのですが。
HATさんへ、いつもコメントありがとうございます。
そうですよね、ご提案の方法の方が、楽だと思います。その方が、性能も高いと思います。
家には、使わなくなったAT互換機があります。また、使っていないPowerBook G4があります。
このどちらかに外付けディスクをつないで、Soft RAID 5を組むのが近道ですね。
ただ、NAS改造も面白そうで、趣味としてやってみたいとは思っています。
netatalkは1つのボリュームに対して4つのボリューム名を持っています。
v_localname – 設定ファイルに書かれている名前 (unix charset)
v_u8mname – Mac OS X向けの名前 (UTF8-MAC)
v_macname – Mac OS 9以前向けの名前 (mac charset)
v_name – AFP3接続のときv_u8mnameと同じ。AFP2接続のときv_macnameと同じ。
元のソースではv_nameになっていました。しかし、Zeroconfでボリューム名を宣伝を開始するのはafpdの起動直後であり、まだクライアントが接続してないのでAFP2かAFP3か分かりません。
この場合、v_macnameの方が優先されてしまい、Mac OS 9向けの名前で宣伝していました。
[Global]セクションにてmac charsetを設定していない場合、これはデフォルトのMAC_ROMANになります。
「私のタイムマシーン」をMAC_ROMANに変換しようと失敗します。この場合、netatalkはボリューム名を「???」に置き換え、その後にVolume IDを付けます。今回の場合、Volume IDが1番だったので、ボリューム名が「???#1」になりました。
つまり、文字化けしてるんじゃなくてmanglingしてるんです。
HATさんへ、再びコメントありがとうございます。
なるほど、そういう仕掛けだったのですか。
それで、
mac charset = MAC_JAPANESE
で、正しい名前で表示されたのですね。
「???#1」も正しい挙動と言えるのですね。
現象確認から、原因特定、BUG FIXまで早かったですね。さすがです。
Netatalk 3.0 and Samba
も変更されている事を確認しました。
直接パッチを書いて頂けると、”suggested by Oichi” じゃなくて、”from Oichi”になります。
developerに登録されれば自分でgitにcommitできます。
かなりしんどいので、そろそろdeveloperを増やしたいんですけど。
HATさんへ、いつもコメントありがとうございます。
次にバグを発見して、原因を追及できたら、パッチを作ってみたいと思います。
ただ、私もいっぱいいっぱいなので、どこまでご協力できるかはわかりません。