_ [debian] xmms 1.2.9-1vd1

gkrellmms の #231740 つながりで、xmms 本体に #232695 というのがあったようだ。ということで xmms 1.2.9-1vd1 を作ってみた。libdb4.2-dev が入っているので、Depends から libdb3-dev を削除。再度 gkrellmms を使って様子を見るか。 落ちなくなったかも。でもメニュー選ぶと 100% 即死。こっちは別の問題っぽいなぁ。

_ [comp] 五月雨 IgnorePath 設定

yoosee.wiki - 五月雨 は、五月雨を知る切っ掛けとなった Wiki だが、IgnorePath の説明は途中で終わっている。\ay日記 - 五月雨について は記述が若干古かった。手探りでなんとかしてみよう。 以下、Linux kernel patch from the Openwall Project をチェックするための手順を追ってみる。このページの最下行には SSI を用いていると思われるテキスト型のアクセスカウンタがある。これのせいで、正確な更新時間を取得することができない。これを IgnorePath にて処理してみようと思う。 まず、IgnorePath を設定するには htmldiff と htmlign を使えとあるが、htmldiff は存在していなかった。cvs を探ってみると、removed. use samidare –diff-content. ということだそうだ。なるほど。–diff-content はチェックしたい URI を引数に取るようだ。実行した結果は次の通り。

% ./samidare --diff-content http://www.openwall.com/linux/
checksum1: 39524 [] tmp/af-www.openwall.com-linux_02-15_05:00.html
checksum2: 39522 [] tmp/af-www.openwall.com-linux_02-15_06:00.html
[["560657", "/html/body/table[3]/tr/td[2]/p/font/text()"],
 ["560664", "/html/body/table[3]/tr/td[2]/p/font/text()"]]
--- /tmp/htmldiff114608.0       2004-02-15 06:12:31.000000000 +0900
+++ /tmp/htmldiff214608.0       2004-02-15 06:12:31.000000000 +0900
@@ -463,7 +463,7 @@
       {elem
        <p align="RIGHT">
        {text "\n"}
-       {elem <font size="-2"> {text "560657"} </font>} 
+       {elem <font size="-2"> {text "560664"} </font>}
        {text "\n"\}\}}}
     </table>}
    {text "\n" "\n"}

チェックサム、Path、diff が表示された。 この表示された Path を htmlign を使ってテストするのだが、この htmlign が手元では動かない。

../htmlign:31: undefined method `decode_charset_guess' for #<String:0x40326c38> (NoMethodError)

ひとまず該当個所を無視。

-tree1 = HTree.parse(File.read(filename1).decode_charset_guess)
+tree1 = HTree.parse(File.read(filename1)) #.decode_charset_guess)

まだエラーが出る。

../htmlign:9:in `path2pattern': undefined method `alt' for Regexp:Class (NoMethodError)
        from htmlign:34

[ruby-dev:21146] Regexp.alt(pat1, pat2, …) からコードをいただいてきて、htmlign に挿入。これで htmlign は動くようになった。 さて htmlign の使い方だが、チェックしたいファイルと Path を引数に取るようだ。

../htmlign tmp/af-www.openwall.com-linux_02-15_05:00.html \
        '/html/body/table[3]/tr/td[2]/p/font/text()'
/\A(?-mix:\/html(\[\d+\])?\/body(\[\d+\])?\/table\[3\]\/tr(\[\d+\])?\/td\[2\]\/p(\[\d+\])?\/font(\[\d+\])?\/text\(\)(\[\d+\])?)\z/
"/html/body/table[3]/tr/td[2]/p/font/text()"
--- /tmp/htmldiff114643.0       2004-02-15 06:24:50.000000000 +0900
+++ /tmp/htmldiff214643.0       2004-02-15 06:24:51.000000000 +0900
@@ -463,7 +463,7 @@
       {elem
        <p align="RIGHT">
        {text "\n"}
-       {elem <font size="-2"> {text "560657"} </font>}
+       {elem <font size="-2"> </font>}
        {text "\n"\}\}}}
     </table>}
    {text "\n" "\n"}

お、うまくアクセスカウンタの場所が無視されたぞ。 あとは config.yml で IgnorePath を設定すれば OK。

  - URI: http://www.openwall.com/linux/
    Title: Owl patch
    IgnorePath: /html/body/table[3]/tr/td[2]/p/font/text()

今のところ手元ではきちんと動いているようだ。