AWS の中の人から net/http
が Content-type を指定しないときに application/x-www-form-urlencoded
が指定されてしまうので、AWS のサービスの中で受け付けないものがあって困っているという報告があり、AWS ではそのために aws-sdk でモンキーパッチを当てているとのことだった。
RFC などでは別につけなくても良いということになっていて、開発者会議でそれなら外してみるかね、となったのでデフォルト値は何も設定しないようにした。
https://github.com/ruby/net-http/pull/207
最初雑に外したらテストが通らなくて、後で、ってしたのだけど、ちゃんと眺めたらテストサーバーでクライアント側が指定した Content-type をエコーで返すようにしたのは自分だったわ、というのを思い出して書き直したらテストは難なく通るようになった。
次の preview リリースには含まれると思うのでなんか踏み抜いた人は教えてください。
macOS 26 の環境設定をちまちまとやっていて、相変わらずの Ruby ビルドチャレンジをしていたら Ruby 1.8 はビルドできるのに 1.9 と 2.0 だけビルドできなくてなんだこれ、と調べて強引にビルドできるようにした。
https://github.com/hsbt/old-ruby-build/commit/03100a3bfecb3c3f2b84fdfaafe1c53f903b84ae
どうやら Xcode 26 beta で上記のシンボルの扱いが変わったらしいけど、objc はもうあってもないようなものなので ldflag への追加を消したらなんとかなってしまった。
macOS のアップグレードなどをすると GEM_HOME を共有して使っていたり、ruby-dev
みたいに毎回上書きしてインストールするようなケースで入れた C 拡張の互換性が壊れてインストールし直し、というのが毎回だるいので手元にある秘蔵のスクリプトを gem repair
と呼べるようにしたものをリリースしておいた。
https://github.com/hsbt/gem-repair
使い方はそのまま gem repair
と呼ぶだけで壊れている C 拡張を復旧してくれるので大変便利。世界で僕を含めても 3 人くらいしか必要ないような気もするけど、動かないとかあったら教えてください。