Ruby 1.8.6 installed

自宅のrubyを1.8.5から1.8.6にupgrade*1

で、予想した通りにrails 1.2.2 が動かなくなった。いちおうメモしておく。

Rails 1.2.2 のActiveRecordは1.10.0でした、と。直したところ。

$ACTIVE_RECORD/lib/active_record/lib/active_record/vendor/mysql.rb

def scramble41(password, message)
    return 0x00.chr if password.nil? or password.empty?
    buf = [0x14]
#    s1 = Digest::SHA1.new(password).digest 
#    s2 = Digest::SHA1.new(s1).digest
#    x = Digest::SHA1.new(message + s2).digest
     s1 = Digest::SHA1.digest(password)
     s2 = Digest::SHA1.digest(s1)
     x = Digest::SHA1.digest(message + s2)
    (0..s1.length - 1).each {|i| buf.push(s1[i] ^ x[i])}
    buf.pack("C*")
  end

と思ったら、Rails 1.2.3 (ActiveRecord 1.15)でfixされているようなので、素直にRails をupgrade方向で。

environment.rb から Railsのバージョン指定を削除。

*1:というか、linux対応のcapture cardがなぜか手に入ったので、Windows Serverを削除して、LinuxをホストOSにしたついでに。Windows Serverのライセンスが余っている状態でもったいないけど使い道が。。。