トップ «前の日記(2025/06/10 (火) ) 最新 次の日記(2025/06/12 (木) )» 編集 RSS feed

HsbtDiary


2025/06/11 (水) [長年日記]

net-http の Content-type のデフォルト値を空にした

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 beta で Ruby 1.9/2.0 をビルドする

macOS 26 の環境設定をちまちまとやっていて、相変わらずの Ruby ビルドチャレンジをしていたら Ruby 1.8 はビルドできるのに 1.9 と 2.0 だけビルドできなくてなんだこれ、と調べて強引にビルドできるようにした。

https://github.com/hsbt/old-ruby-build/commit/03100a3bfecb3c3f2b84fdfaafe1c53f903b84ae

どうやら Xcode 26 beta で上記のシンボルの扱いが変わったらしいけど、objc はもうあってもないようなものなので ldflag への追加を消したらなんとかなってしまった。

gem-repair というのを作った

macOS のアップグレードなどをすると GEM_HOME を共有して使っていたり、ruby-dev みたいに毎回上書きしてインストールするようなケースで入れた C 拡張の互換性が壊れてインストールし直し、というのが毎回だるいので手元にある秘蔵のスクリプトを gem repair と呼べるようにしたものをリリースしておいた。

https://github.com/hsbt/gem-repair

使い方はそのまま gem repair と呼ぶだけで壊れている C 拡張を復旧してくれるので大変便利。世界で僕を含めても 3 人くらいしか必要ないような気もするけど、動かないとかあったら教えてください。