apt-get dist-upgrade

etch がリリースされたので, この日記を動かしているサーバも upgrade してみるテスト.

$ sudo apt-get dist-upgrade
  …特につつがなく終了…

しなかった. いや, sarge -> etch 自体はスムーズでしたが.

このサーバで動かしている tdiary には独自パッチが結構あたっていたので, それを当てたパッケージを作りなおして導入し, ようやく幸せに.

あと, amazon2 plugin が動かない.

Insecure: can't intern tainted string (SecurityError)

 /usr/lib/ruby/1.8/amazon/search.rb:1272:in `to_sym'
 /usr/share/tdiary/tdiary.rb:75:in `join'
 /usr/share/tdiary/tdiary.rb:75:in `safe'
 /usr/share/tdiary/tdiary.rb:657:in `eval_src'
 /usr/share/tdiary/tdiary.rb:904:in `do_eval_rhtml'
 /usr/share/tdiary/tdiary.rb:854:in `eval_rhtml'

調べてみると, ruby 1.8.5 から taint を真面目に検査する事になっている. これは ruby-amazon 側で対応すべきなんかな. とりあえず, amazon/search.rb で

@@ -1292,7 +1292,7 @@
  else  # deal with the rest
    members = property.elements.map {|e| e.text}
    -               iv = uncamelise(property.name)
    +               iv = uncamelise(property.name.untaint)
    product.instance_variable_set("@#{iv}".to_sym, members)
  end

@@ -1301,7 +1301,7 @@
   value = property.text
   value = value.gsub(/,/, '').to_i if property.name =~ /Num|Rank/
   -             iv = uncamelise(property.name)
   +             iv = uncamelise(property.name.untaint)
   product.instance_variable_set("@#{iv}".to_sym, value)
 end

みたいにして.

動けば正義.