2005年12月17日
CUPS 1.1.23-15準備
ソースレベルのセキュリティ修正(バイナリはもともと含んでいないので影響ない)をした関係で1.1.23-13から始まったCUPSの阿鼻叫喚だけど、まだまだ続く予定。
そもそもの発端は、これまでかなり要望の多かったdebconfによる調整をexperimental(1.2系)で取り込んだことにある。debconfで調整されるファイルをcupsd.confというモノリシックファイルでやるのは死にそうだったので、includeディレクティブを使い、Port/Listenをports.conf、Browsingをbrowsing.confに置くようにした。
experimentalで特に障害報告がなかったため、1.1系にもコミットを行った(アップロードはしていなかった)。この時点ではPort/Listen/Browsingのsplit時にcupsd.confから該当行はpostinstで除くようにしていた。
その後、mpittがUbuntu向けに作ったパッチのコミットがあった。このときによくテストをしなかったのがそもそも失敗だったのだが、「postinstでcupsd.confファイルをいじくるのは悪」ということで該当行を除くルーチンが削除された。
さて、-13をアップロードすることになって、自分のテスト環境ではexperimentalをそれまで使っていたこともあり、cupsd.confはPort/Listen/Browsingの抜かれた状態になっていた。そのため、自分のインストールテストでは問題が出なかったのだが、-12からアップデータした組はPort/Listenが重複することになり、(インテリジェントなパースもまともなエラーを出すのもしてくれないCUPS自体ださいのだが)「ポートをバインドできない」エラーで死亡という素敵な事態となった。
cupsd.confから除くようにしてやればいいのはわかってたのだけど、evilとまた言われるのもアレなので、-14ではNEWS告知とmaintainer versionのほうでのPort/Browsing行のコメントアウトを行った。ひとまずこれで落ちつくはずだったのだが、未だに-13のバグが来まくる。
実は-14にもまだ問題があり、-15では「*をListenのホスト名として許可する」「dashのechoを使わないようにする」の2大バグの修正をコミット済み。
その後、分割ファイルはkprinterとかで困るぞコラというバグレポートを貰う。kprinterで作ったcupsd.confはトラブルメーカーな気がするのだが、まぁ確かに困ることは困るか。Ubuntuではgnome-cups-managerを使って設定するようにしてるんだっけか。cupsd.confは巨大だし、Port/Listen/Browsingを「更新」するのはそう易しいことではない気がする。ファイルパース→既存の値を取り出す→debconf DBに値を入れる(debconf内の既存値ではなく、実ファイルのほうを優先しなければならない)→configのdebconfで質問→postinstでcupsd.confの既存の値を消す→cupsd.confファイルのどこか(末尾?)に新しい値を加える という手順になるだろうか。序盤は今でもやっているのだが、この方法だとcupsd.confをかなり書き換えることになるので、本当にどの設定でも正しく動くのか不安ではある。まぁとにかくどうするのがベストですかねとメンテナチームのMLに投げておいた。
結論。1. experimentalはよほど魅力的なもの(OOoとかX.orgとかaptとか)でないと使われないので、build testくらいに考える。2. BTSを見ない人は多い。3. wishlist/minorを解決するとgrave/critical/seriousが増える。4. ほかの人のコミットにも注意しよう。
いずれにせよ、しばらくsidのCUPSは試行錯誤段階を続けることになると思う。設定ファイルが増えたり減ったり、でsidの前のバージョンとの互換性・移行性についてはあまり考えないつもり。まぁsidだし。testingは-12で止めとくようにしたので、testingではこの影響は出ない。
そろそろCUPS 1.2系にしたいなぁ…。日本語(というか英語以外全部)テンプレートなくなってるけど。
![[hatena]](http://d.hatena.ne.jp/images/b_entry_de.gif)

![[RSS]](/d/rss10.png)
Debian GNU/Linux徹底入門 Sarge対応
Debian辞典