ruby-trunk-changes r35548 - r35569

今日は openssl の機能追加、json の 1.7.1 マージなど主にライブラリの更新がありました。

naruse:r35548 2012-05-06 21:39:59 +0900

io.c と addr2line.c の未使用の変数を削除(addr2line.c のほうはコメントアウト)しています。 [ruby-dev:45627]

emboss:r35549 2012-05-07 07:26:08 +0900

拡張ライブラリ openssl で TLSv1.1 と TLSv1.2 のサポートを追加しています。OpenSSL::SSL::SSLContext#ssl_version= で :TSLv1_1 と :TSLv1_2 が指定可能になり、OpenSSL::SSL::SSLSocket#ssl_version で利用しているバージョンが取得できるようになりました。

svn:r35550 2012-05-07 07:26:13 +0900

version.h の日付更新。

emboss:r35551 2012-05-07 09:37:59 +0900

r35549 の ChangeLog エントリの typo 修正。

nobu:r35552 2012-05-07 10:16:32 +0900

test/rubygems/test_gem_installer.rb の test_dir で assert_match の引数の順番が逆になっていたのを修正しています。期待する結果と実際の値の順番が逆でした。

nobu:r35553 2012-05-07 10:23:07 +0900

テストで assert_block という assertion を利用していたところを assert_equal などで書き直しています。assert_block は渡されたブロックを呼んでその結果の真偽で assert を呼んでるだけなので、なんのためにあるのかよくわからない assertion ですね。

nobu:r35554 2012-05-07 10:27:59 +0900

Digest::RMD160#update でのオーバフロー時のビット数計算を size_t の型のサイズが 32bit でない時を考慮して明示的にキャストするなどの対処をしています。

naruse:r35555 2012-05-07 11:03:28 +0900

拡張ライブラリ bigdecimal のロード時の ID(シンボルの内部表現)を取得しておく処理が定数に格納するために BigDecimal オブジェクトを生成する処理より後になっていたため Thread#keys で TLS を参照すると SEGV することがあったのを、ID 取得のタイミングを前に移動して修正しています。 [ruby-core:44900] [Bug #6406]

shugo:r35558 2012-05-07 13:05:44 +0900

Net::IMAP で ATTACHMENT という body type のパースに対応しています。 [ruby-core:44849] [Bug #6397]

nobu:r35559 2012-05-07 13:41:02 +0900

ビルド時に codesign というプログラムが実行可能で RUBY_CODESIGN という変数が設定されていたら生成した実行体に対して実行するようにしています。あまり情報がないのでよくわかりませんがアプリケーションに対するコード署名をすることでファイアウォールの警告を回避しようとしているのだろうと思います。

nobu:r35560 2012-05-07 14:11:45 +0900

拡張ライブラリ json で未使用の関数の宣言と定義をコメントアウト、また make の依存関係を追加しています。

usa:r35561 2012-05-07 17:25:02 +0900

r35560 で追加した依存関係のパスが相対パスになっていたので $(srcdir) を付け加えています。

naruse:r35562 2012-05-07 17:46:50 +0900

r35560 と r35561 を revert しています。テストが失敗するようになっていた(実は使っていた?)ようです。また json は上流レポジトリがあるのでそっちを修正してから取り込むようにしましょうということです。

naruse:r35563 2012-05-07 18:08:17 +0900

minitest のマージ後 assert_match/refute_match の挙動が変化してテストが失敗していた問題を修正しています。 [ruby-core:44884] [Bug #6405]
minitest も上流リポジトリがあるわけですが、テストが壊れてるから直してくれと報告したものがすぐ取り込まれなかったから直接入れたのでしょう。

akr:r35564 2012-05-07 20:15:28 +0900

SecureRandom.random_bytes で引数を to_int で整数に変換してから利用するようにしています。
/dev/urandom から読み込んだサイズが不一致になっていたのは引数に Float かなにかを渡していたようですね。

akr:r35565 2012-05-07 20:15:46 +0900

ついでに SecureRandom.random_bytes で読み込みサイズが不一致の時の例外メッセージを少し修正。

emboss:r35567 2012-05-07 20:57:01 +0900

拡張ライブラリ openssl に定数 OpenSSL::SSL::OP_NO_TLSv1_1、OpenSSL::SSL::OP_NO_TLSv1_2 を追加して特定の TLS のバージョンを利用しないように指定できるようにしています。OpenSSL::SSL::SSLContext#options= にビットフラグとしてセットして使うようです。
また openssl のテストで server_connect というヘルパーメソッドを利用するようにリファクタリングしています。無関係なテスト修正はコミット分けて欲しいところですね。

naruse:r35568 2012-05-08 01:00:49 +0900

拡張ライブラリ json の 1.7.1 がマージされています。
r35560 でコメントアウトしていたのと同じくヘッダに定義されている関数が #include 元によって未使用な場合の対処として条件コンパイルをするようにしていたり、RB_GC_GUARD() の削除や位置の移動など。RB_GC_GUARD() の変更は r35336 や r35261、 r35264 の変更が巻き戻されているような気がします。

svn:r35569 2012-05-08 01:00:53 +0900

version.h の日付更新。