Cygwinにavahi-daemonを導入する

Cygwin portsにはavahiが収録されている。avahiは、AppleBonjourとして知られるZeroconfと同様のプロトコルを実装したもので、サービスのディスカバリ等でUbuntuFedoraのようなGNOME系のディストリビューションには標準で導入されている。
で、WindowsにはApple製のBonjourがインストールできるのでどうやってAvahiを使うのかと思ったら、どうやらBonjourと同時に利用できるようなパッチがAvahiには存在し、Cygwin版はそれを取り込んでいるらしい。

というわけで、Cygwin portsにはAvahiが有るが、インストールしようとするとBonjourのインストールを促すダイアログがわざわざ出る。

Cygwin portsOpenGL ESとかOpenVG(!)のような絶妙なパッケージもあるが、たまに上手く動かないものもあるので注意が必要だ。。追記: これらは既にCygwinの公式パッケージのようだ。Cygwin portsにしか無いものは主にGNOMEKDEのようなデスクトップ環境とその周辺プログラム - 例えばGStreamer等 - で、実際それなりに動く。

Windowsサービスにする

CygwinsshWindowsのサービスとして動作させるためにssh-host-configコマンドを使ったように、Cygwin Avahiにもavahi-daemon-configコマンドが用意されている。
但し、先にD-Busを組み込まないとサービス開始時にエラーになるD-Busは依存関係で自動的にインストールされるが、システム的な呼び名はmessagebusなのに注意。つまり:

  • /usr/bin/messagebus-config
  • /usr/sbin/avahi-daemon-config

の順に実行してシステムに組み込む必要がある。avahi-daemon-configによってイントールされるNTサービスには、ちゃんとmessagebusサービスとの依存関係が設定される。