トップ «前の日記(2022/10/18 (火) ) 最新 次の日記(2022/10/20 (木) )» 編集 RSS feed

HsbtDiary


2022/10/19 (水) [長年日記]

Homebrew で OpenSSL 3.0.6 が残り続けていた

先日、OpenSSL 3.0.6/1.1.1r がリリースされて、regression が見つかったので 1日で取り下げられたけど、homebrew の方は自動でバージョンダウンしないので brew info openssl@3 で 3.0.6 が入ってる場合は reinstall か uninstall/install したほうがいいです。(1.1.1r の方も同様)

10/12-13 の時間帯に openssl をインストールまたは、brew 全体をアップグレードしていた人は対象です。

この問題、この regression を踏んだことで Ruby の openssl のテストが下のように見たことない落ち方をしていて気がついて、@nobu が regression が原因と教えてくれて知った。

OpenSSL::TestX509CRL#test_revoked [/Users/hsbt/Documents/github.com/ruby/ruby/test/openssl/utils.rb:163]:
<[]> expected but was
<["error:05880106:x509 certificate routines::passed invalid argument"]>.

homebrew は便利だけど、バージョンは常に上がるものとしてしか動かないので、 https://formulae.brew.sh/formula/openssl@3 にある Formula または Bottle の API に更新日付を入れてそこで制御するようにしてくれると嬉しいなあ。

Git 2.38.1 の変更で RubyGems のテストが落ちる

上とは別に、(Ruby には)何もしてないのにテストが落ち始めた...パート2を調べていて RubyGems の中で git submodule を実行した時に

  1) Failure:
TestGemSourceGit#test_checkout_submodules [/Users/hsbt/Documents/github.com/ruby/ruby/test/rubygems/test_gem_source_git.rb:73]:
fatal: transport 'file' not allowed
fatal: clone of '/Users/hsbt/Documents/github.com/ruby/ruby/tmp/test_rubygems_20221019-59939-ifsva4/git/b' into submodule path '/Users/hsbt/Documents/github.com/ruby/ruby/tmp/test_rubygems_20221019-59939-ifsva4/git/a/b' failed

というように落ち始めてしまった。エラーメッセージから明らかに git の影響ぽいので、gitconfig を消したり、macOS だけじゃなくて Ubuntu でも実行したりして、差分を調べていても全部同じエラーで落ちていて、「でも、Ruby CI の Ubuntu では落ちないのはなんで...?」と色々条件を変えていったら、macOS で Git 2.38.0 では落ちないけど、2.38.1 では落ちる、というのを見つけた。

https://github.blog/2022-10-18-git-security-vulnerabilities-announced/#cve-2022-39253

ここまできたら、だいたい絞り込めたので、そういや 2.38.1 では脆弱性修正の変更があったっけな、と眺めたら上の URL にあるように protocol ごとに制限が入ったのが要因だった。最初の Ubuntu で落ちるのと落ちないのが、というのもバージョンの問題ではなくて修正を取り込んだかどうか、という違いだった。

https://github.com/rubygems/rubygems/issues/5996

これ、オプションを渡せば別にテストは通せるけど、Git の方針として制限をキツくしたのを意図的にバイパスするオプションをつけるのは、どうなんすかね、というあたりもあって直し方がむずいなあ。

JRuby バージョンの iconv が欲しい人は教えてください

だいぶ前に JRuby が同梱していた iconv の Java 実装を iconv gem にマージしてはどうか、という話があって掘り起こしていた。

https://github.com/ruby/iconv/pull/19

テストは結局動いてなくて、JRuby サイドもプラオリティがいまいちわからん、という状態だったのでとりあえず何もしないで今のまま、ということにした。もし、Java 実装な iconv gem が欲しいという人がいたら、上の pull request に欲しい、とコメントしてください。もしかしたらマージするかもしれません。