ruby-trunk-changes r48923 - r48946

今日は fiddle のために libffi をダウンロードしてきてパッケージに同梱するようにする変更やそのためのビルドプロセスやツール類の準備/修正などがありました。

nobu: r48923 2014-12-23 11:42:16 +0900

拡張ライブラリ openssl で OpenSSL の EVP_CipherUpdate() を呼ぶ時に一度に渡せるデータサイズの上限(int の範囲)を越えないように分割して渡すようにしています。 [ruby-core:67043] [Bug #10633]

svn: r48924 2014-12-23 11:42:27 +0900

version.h の日付更新。

nobu: r48925 2014-12-23 15:21:49 +0900

fiddle の extconf.rb 修正。 mswin で libffi をビルドする際に mingw としてビルドするようにしているそうです。このへんどうやら libffi の mswin 対応がよくないらしいですね。

nobu: r48926 2014-12-23 15:22:00 +0900

fiddle の extconf.rb 再修正。 pkg_config("libffi") が成功した時だけ modversion を取り出すようにしています。

nobu: r48927 2014-12-23 16:03:37 +0900

拡張ライブラリ win32 の win32/registry.rb で FormatMessageW() 後の整形で EncodingError が発生したら en_US を指定して FormatMessageW() で再度メッセージ生成するようにしています。

nobu: r48928 2014-12-23 17:58:53 +0900

r48927 の続きで、リトライ時に切り詰められた文字列をバッファとして渡してしまうことでバッファオーバフローが起こり得るようになっていたのを修正しています。 [ruby-core:65295] [Bug #10300]

nobu: r48929 2014-12-23 20:33:54 +0900

拡張ライブラリ fiddle の extconf.rb や depend で make clean-libffi などのターゲットを追加してバンドルされている libffi 内での make clean を実施できるようにしています。

nobu: r48930 2014-12-23 20:57:11 +0900

r48929 の追加。 make realclean-libffi で $(RMDIR) のかわりに $(RMALL) を使うようにしています。

naruse: r48931 2014-12-23 22:04:06 +0900

tool/redmine-backporter.rb で redmine の不具合の回避のための修正。 最新の redmine ではチケットの情報の取得に include=changesets を指定しても changesets フィールドが返されないそうです。

nobu: r48932 2014-12-23 22:05:47 +0900

ext/extmk.rb で LOCAL_LIBS の "./" からはじまるファイルパスをソースディレクトリからの相対パスに展開するようにしています。 libffi.a の追加時にやっていた処理を一般化しているみたいです。

nobu: r48933 2014-12-23 22:07:39 +0900

fiddle の extconf.rb の修正。 libffi のビルド時の CPP の設定は mswin 以外では空になってしまうので必要な時だけ引数に設定するようにしています。

naruse: r48934 2014-12-23 22:11:43 +0900

標準添付ライブラリ uriURI::Generic#query= でのエスケープ対象から '['、']'、'\' および '^' をはずしています。 [ruby-core:66957] [Bug #10619]

nobu: r48935 2014-12-23 22:24:33 +0900

tool/extlibs.rb というツールを追加してバンドルする外部ライブラリのダウンロード、展開、パッチ適用などを行うようにしています。 libffi 用ですね。

nobu: r48936 2014-12-23 22:39:13 +0900

r48935 で追加した tool/extlibs.rb で libffi をダウンロードさせるために ext/fiddle/extlibs というファイルを追加して libffi-3.2.1 のダウンロードの指定と mswin 用のパッチを追加しています。なんかアセンブラのソースにパッチを当てていてかなりの苦労の跡が見受けられますね…。

nobu: r48937 2014-12-23 23:14:27 +0900

r48937 の tool/extlibs.rb のアーカイブファイル展開で拡張子をみて適当に解凍プロセスをはさむようにしています。

nobu: r48938 2014-12-23 23:30:32 +0900

Makefile.in にあった make update 時の make after-update の実施を common.mk に移動して Windows 版でも行われるようにしています。

usa: r48939 2014-12-23 23:51:33 +0900

gems ディレクトリに svn property の svn:ignore を追加してダウンロードしたファイル群を無視させるようにしています。

usa: r48940 2014-12-23 23:52:08 +0900

r48939 の property 名? に typo があったのを修正している模様。 git-svn でみてると property 変更は内容がわからないんですけどね。 viewvc でも見えないし。

usa: r48941 2014-12-24 00:06:40 +0900

標準添付ライブラリ open-urissl_ca_certs オプションに配列で複数の証明書ファイルを指定できるようにしています。これを使って tool/downloader.rb で gem パッケージのダウンロード時に lib/rubygems/ssl_certs にある証明書を指定するようにしています。 ふーむ、そういえばなんか rubygems.org の証明書の更新があったとかでなにか issue かチケットをみたような…。確か標準添付している rubygems の証明書も更新しないといけないんでした。

svn: r48942 2014-12-24 00:06:59 +0900

version.h の日付更新。

usa: r48943 2014-12-24 00:22:58 +0900

make after-update の依存関係から common-srcs を common.mk での定義から Makefile.in に移動しています。 mswin でビルドできなかったためとのこと。 common-srcs は自動生成されるソースコード類の生成のための依存関係みたいですが、なぜこれがだめだったのかちょっと不思議ですね。いいのかな…。

usa: r48944 2014-12-24 00:24:07 +0900

r48935 で追加した tool/extlibs.rb でアーカイブファイル展開時の popen で開かれる pipe を binmode で開くようにしています。

usa: r48945 2014-12-24 00:32:37 +0900

r48937 で tool/extlibs.rb でファイル展開する時の各種圧縮拡張子に対応した時に解凍ではなく圧縮するオプションで gzip/bzip2/xz などを呼んでしまっていたので修正。

nobu: r48946 2014-12-24 02:12:25 +0900

tool/make-snapshot で tool/vcs.rb の VCS#branch_list に正規表現を渡していましたが、ここは glob のメタキャラクタを使った文字列を渡すべきだったので修正しています。さらに tool/vcs.rb 側も検出した branch 名を chomp! してからブロックを呼び出すようにしています。 [ruby-core:67064] [Bug #10636]