今月は Matz の予定の都合で木曜ではなくて水曜のバレンタインデーに開催。
https://bugs.ruby-lang.org/issues/20193
事前準備会で眺めた通り、上の URL にあるアジェンダに沿ってあれこれ話していた。ちょうど「これどうしようかなあ」という話題があったので最後に軽く話題としてふったりしていた。
来月にはちょっと今年やろうと思っていることの議題を出そうと思っているので頑張ろう。
https://github.com/akr/all-ruby で使っている Base イメージが Debian 10 の buster ともうノーマルメンテでは EOL を迎えているバージョンなので 11 の bullseye か 12 の bookworm のどちらかにアップデートできんかなとあれこれ試していた。
https://github.com/akr/all-ruby/pull/16
という感じで bullseye のイメージでは直接ビルドすることができないバージョン(gcc や glibc のバージョンが新しすぎるのが原因)については buster でビルドしたバイナリをマルチステージでコピってから、bullseye でビルドできるものはビルドする、というようにすることで無事全バージョンが bullseye で動くようになった。すごくない?
で、この応用で bookworm にもしてみたものの、こっちは OpenSSL 3 しか提供されないことからビルドできる対象のものが大幅に減るというのと、さらに OpenSSL 1.1 がないことで強引にコピっても動かないものがおそらく多いだろうという厳しい状態。
https://github.com/akr/all-ruby/pull/17
とりあえず、インタプリタさえ動いてしまえば syntax や組み込みクラスなどのチェックには使えるからいいか、とそこまでは動くようにしたものの、コメントにあるようにApple Silicon の macOS で system ruby である ruby3.1 が linux/amd64
で動かすとクラッシュするという状態に遭遇して一旦ストップ。Windows でホストも Docker も amd64 で動かすと大丈夫なのになんだろうなあ。
ここまでやって時間切れになったので bookworm 化はまた後で。bullseye なイメージは all-ruby:latest
として push しておいた。以前のバージョンを使いたい人向けに all-ruby:buster
としてバックアップもしておいた。