私も最新の安定版のビルドで問題が発生しています。これは1〜2週間前までは問題なくビルドできていました。関連するRubyの変更(discourse_dockerの変更が元に戻されたとしても)に関連している可能性があると思います。問題は、以前は動作していたgemがビルドに失敗することです。
gem(stringio)は(少なくとも?)discourse-eventsプラグインによってプルされていますが、このプラグインはこのgemと同じバージョンを少なくとも過去2年間(おそらくそれ以上)使用しています。プラグインの古い(以前は動作していた)バージョンでビルドを試しましたが、それでも失敗します。そのため、Ruby 3.3.1への対応のために、安定版ブランチにも何らかの変更が加えられたのではないかと思います。
おそらく重要なのは、これがARMマシンでのみ発生していることです(過去数ヶ月間、ARMでDiscourseを問題なくビルドできていました)。x86で全く同じセットアップをビルドしようとすると、問題なく動作します。したがって、ARM64に依存しているようです。gemはdiscourse-eventsによってプルされていますが、以前は動作していたのと同じgem(およびバージョン)です。Discourse自体にも何らかの変更があったはずだと思います。ARM64の観点から何が起こっているのか、@Falcoさんは何かアイデアがあるでしょうか?
ビルドログ
[...]
互換性のあるdocker_managerバージョンをチェックアウトしています: 9523f7a88453ce1863071bcc2bc88130b60efee5
HEADは現在 9523f7a 翻訳の更新 (#205) です
I, [2024-05-28T09:52:18.538215 #1] INFO -- : cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
ERROR: stringio のインストールに失敗しました:
ERROR: gem native extension のビルドに失敗しました。
現在のディレクトリ: /var/www/discourse/plugins/discourse-events/gems/3.3.1/gems/stringio-3.0.2/ext/stringio
/usr/local/bin/ruby extconf.rb
ruby/io.h の rb_io_extract_modeenc() をチェック中... はい
Makefile を作成中
現在のディレクトリ: /var/www/discourse/plugins/discourse-events/gems/3.3.1/gems/stringio-3.0.2/ext/stringio
make DESTDIR= sitearchdir=./.gem.20240528-1205-7qlio5 sitelibdir=./.gem.20240528-1205-7qlio5 clean
現在のディレクトリ: /var/www/discourse/plugins/discourse-events/gems/3.3.1/gems/stringio-3.0.2/ext/stringio
make DESTDIR= sitearchdir=./.gem.20240528-1205-7qlio5 sitelibdir=./.gem.20240528-1205-7qlio5
stringio.c をコンパイル中
stringio.c: 関数 ‘strio_init’ 内:
stringio.c:343:24: error: storage size of ‘convconfig’ isn’t known
343 | struct rb_io_enc_t convconfig;
| ^~~~~~~~~~
stringio.c:343:24: warning: unused variable ‘convconfig’ [-Wunused-variable]
stringio.c: トップレベル:
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier diagnostics
make: *** [Makefile:248: stringio.o] Error 1
make は失敗しました、終了コード 2
Gem ファイルは検査のために /var/www/discourse/plugins/discourse-events/gems/3.3.1/gems/stringio-3.0.2 にインストールされたままになります。
結果は /var/www/discourse/plugins/discourse-events/gems/3.3.1/extensions/aarch64-linux/3.3.0/stringio-3.0.2/gem_make.out に記録されました。
I, [2024-05-28T09:52:39.324741 #1] INFO -- : gem install uuidtools -v 2.2.0 -i /var/www/discourse/plugins/discourse-events/gems/3.3.1 --no-document --ignore-dependencies --no-user-install
Successfully installed uuidtools-2.2.0
1 gem installed
gem install iso-639 -v 0.3.5 -i /var/www/discourse/plugins/discourse-events/gems/3.3.1 --no-document --ignore-dependencies --no-user-install
Successfully installed iso-639-0.3.5
1 gem installed
gem install ice_cube -v 0.16.4 -i /var/www/discourse/plugins/discourse-events/gems/3.3.1 --no-document --ignore-dependencies --no-user-install
Successfully installed ice_cube-0.16.4
1 gem installed
gem install icalendar -v 2.8.0 -i /var/www/discourse/plugins/discourse-events/gems/3.3.1 --no-document --ignore-dependencies --no-user-install
ActiveSupport は TimeWithZone のサポートに必要ですが、一般的な使用には必要ありません。
Successfully installed icalendar-2.8.0
1 gem installed
gem install icalendar-recurrence -v 1.1.3 -i /var/www/discourse/plugins/discourse-events/gems/3.3.1 --no-document --ignore-dependencies --no-user-install
Successfully installed icalendar-recurrence-1.1.3
1 gem installed
gem install date -v 3.3.4 -i /var/www/discourse/plugins/discourse-events/gems/3.3.1 --no-document --ignore-dependencies --no-user-install
ネイティブ拡張機能をビルドしています。これには時間がかかる場合があります...
Successfully installed date-3.3.4
1 gem installed
gem install time -v 0.2.0 -i /var/www/discourse/plugins/discourse-events/gems/3.3.1 --no-document --ignore-dependencies --no-user-install
Successfully installed time-0.2.0
1 gem installed
gem install stringio -v 3.0.2 -i /var/www/discourse/plugins/discourse-events/gems/3.3.1 --no-document --ignore-dependencies --no-user-install
ネイティブ拡張機能をビルドしています。これには時間がかかる場合があります...
You are specifying the gem stringio in /var/www/discourse/plugins/discourse-events/plugin.rb, however it does not exist!
Looked for:
- /var/www/discourse/plugins/discourse-events/gems/3.3.1/specifications/stringio-3.0.2.gemspec
- /var/www/discourse/plugins/discourse-events/gems/3.3.1/specifications/stringio-3.0.2-aarch64-linux.gemspec
- /var/www/discourse/plugins/discourse-events/gems/3.3.1/specifications/stringio-3.0.2-aarch64-linux.gemspec
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 1109 exit 255>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 255
最近のRubyの変更とは全く関係ない場合は、ご容赦ください。その場合は新しいトピックを開きます。