おがさわらなるひこのオープンソースとかプログラミングとか印刷技術とか

おがさわらなるひこ @naru0ga が技術系で興味を持ったりなんだりしたことをたまーに書くブログです。最近はてなダイアリー放置しすぎて記事書くたびにはてな記法忘れるのではてなブログに移行しました。

クリエイティブ・コモンズ・ライセンス
特に断りがない場合は、本ブログの筆者によるコンテンツは クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。

CUPS 1.6からネットワークプリンタがブラウズできなくなっちゃう?なんてことはないかも【続報】

2012.03.21 この記事にはいくつか恥ずかしい勘違いがあります。d:id:naruoga:20120321:1332312822 で訂正しているので、そちらもご覧ください。

えーと、d:id:naruoga:20120218:1329548269 で書いた件、「それ違うよー」って Twitter でご指摘をいただきました。CUPS.General で議論があったとは。見落としてた(メールでフィードしてないんだよな)。

@kojiotani さんありがとうございました!

時系列を整理すると、

  1. Tim が Fedora の開発者 ML と自分のブログで「オレの Avahi 対応はいつまでも取り込まないくせに、Mac OS X は自前のライブラリ使って DNS-SD 対応して、UDP ブロードキャスト落とすとか Mac OS X 以外はデグレじゃねーか」と怒る
  2. それが The H Online に捕捉される ← 私が見た記事がこれ
  3. そのドイツ語版記事を読んだ人が「これってマジかよ?」と CUPS.General で質問
  4. Mike が反論

って流れだと思います。Mike のメッセージをさくさくっと関係するところだけ訳すと:

2. CUPS Browsing (UDP broadcasts over port 631) is no longer supported in CUPS 1.6, replaced by Bonjour (DNS-SD, ZeroConf, and mDNS). This has been coming for a long time - it only ever worked well for small networks with well-known hostnames for the "server" systems, and UDP broadcasts over Wi-Fi have a serious performance impact on the performance/bandwidth that is available, not to mention wasted power for portable devices... This mainly affects people that use BrowsePoll and/or implicit classes for load balancing - regular printer sharing will continue to work, just using a different protocol for finding and using the printers.

2. CUPS ブラウジング (ポート 631 上の UDP ブロードキャスト) は CUPS 1.6 ではもうサポートされず、Bonjour (DNS-SD, ZeroConf, mDNS) で置き換わる。これはずっと前から予定されてたことだ - CUPS ブラウジングは「サーバー」システムのホスト名が知られている小さなネットワークでしかきちんと動かないし、Wi-Fi 越しの UDP ブロードキャストは、パフォーマンス/帯域の両面で深刻な影響を与えるし、言うまでもなく携帯デバイスの電力を消費する……。この変更で影響を受けるのは BrowsePoll を使っているか、ロードバランシングのために明示的にプリンタークラスを使っているユーザーだけだ - 通常のプリンター共有はそのまま動作する。ただプリンターを探したり利用したりするためのプロトコルが異なるだけだ。

とあるので、あー、Linux も ZeroConf を使うってことで、Tim のパッチを使うか否かに関わらず、ただ時間的に間に合ってないってだけなのかな、と思ったら。

これまた @kojiotani さんから別のコメントをいただきました。

URL にあるメールの中から、「それって Linux で重大なデグレが起きるってことじゃない?」という問いかけに対しての Mike のコメントだけ引用。

No, the scheduler does not maintain a constant browse for shared printers - that is done in libcups, and there are new APIs for dealing with dynamically-available printers in CUPS 1.6. You can also manually add specific shared printers you use, and the CUPS 1.6 web interface will automagically use the "raw" driver for shared printers.
The only functionality that is lost is the notion of implicit classes.

よくわかんないけど:

  • CUPS スケジューラにはブラウジングの機能は持たせないよ
  • その機能は libcups に実装するよ
  • system-config-printer とかは libcups に新設する API を使うなりしてちょうだいな
  • CUPS Web UI は libcups を使うから機能は変わらないよ

ってこと? そうなの? ねえほんと?

私の解釈が正しいなら、libcups には Tim のパッチとは違う形で Native Avahi 対応が入るってことなの?
それとも Tim がブログで書いてるように、Avahi デーモンは別途走らせておかないとダメってところに後退する?

うーんわからん。

いずれにせよ、中途半端な情報で Mike と Apple に対し攻撃っぽいことを書いたのはごめんちゃいです。ぺこり。
でも Tim も Till も、正直 Apple のこと信用してないんだと思うよ、あのブログとかメールのやりとりとか見ると。まぁ、それだからといって情報収集をちゃんとしないでエントリー書いたいいわけにはなりませんが。

とにかく議論はしばらく追いかけたいところですね。続報があればまた書きます。