파손된 이벤트 플러그인으로 업데이트 오류

저도 최신 안정판 빌드에 문제를 겪고 있습니다. 저도 마찬가지인데, 1~2주 전까지만 해도 정상적으로 빌드되던 것이었습니다. 문제가 이전에 정상 작동하던 젬(gem)이 이제 빌드되지 않는 것에서 발생하고 있으므로, discourse_docker의 변경사항이 되돌려졌더라도 어떤 Ruby 관련 변경사항과 연관되어 있을 가능성이 있다고 생각합니다.

해당 젬(stringio)은 (최소한) discourse-events 플러그인에 의해 의존되고 있습니다. 하지만 이 플러그인은 해당 젬과 동일한 버전을 최소 2년(아마도 더 오래) 동안 사용해 왔습니다. 이전에 정상 작동했던 것으로 알려진 플러그인의 이전 버전으로 빌드를 시도해 보았지만 여전히 실패합니다. 따라서 Discourse 자체에서, 아마도 Ruby 3.3.1을 대비한 것이 안정판 브랜치에도 반영된 다른 변경사항이 있는 것 같습니다.

중요한 점은 이것이 ARM 머신에서만 발생한다는 것입니다. 저는 최근 몇 달간 ARM 환경에서 Discourse를 정상적으로 빌드해 왔습니다. 동일한 설정으로 x86에서 빌드를 시도하면 정상적으로 작동합니다. 따라서 이는 ARM64에 종속적인 문제로 보입니다. 젬은 discourse-events에 의해 의존되고 있지만, 이전에 정상 작동했던 동일한 젬(동일한 버전)입니다. 저는 Discourse 자체에서 무언가 변경되었을 것이라고 생각합니다. ARM64 관점에서 무엇이 일어나고 있는지 @Falco님이 어떤 아이디어를 가지고 계실까요?

빌드 로그
[...]
checking out compatible docker_manager version: 9523f7a88453ce1863071bcc2bc88130b60efee5
HEAD is now at 9523f7a Update translations (#205)

I, [2024-05-28T09:52:18.538215 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
ERROR:  Error installing stringio:
	ERROR: Failed to build gem native extension.

    current directory: /var/www/discourse/plugins/discourse-events/gems/3.3.1/gems/stringio-3.0.2/ext/stringio
/usr/local/bin/ruby extconf.rb
checking for rb_io_extract_modeenc() in ruby/io.h... yes
creating Makefile

current directory: /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

current directory: /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
compiling stringio.c
stringio.c: In function ‘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: At top level:
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 failed, exit code 2

Gem files will remain installed in /var/www/discourse/plugins/discourse-events/gems/3.3.1/gems/stringio-3.0.2 for inspection.
Results logged to /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 is required for TimeWithZone support, but not required for general use.
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
Building native extensions. This could take a while...
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
Building native extensions. This could take a while...
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 변경사항과 전혀 관련이 없다면 죄송합니다. 만약 그렇다면 새로운 토픽을 열겠습니다.

StringIO 3.0.2는 Ruby 3.3과 호환되지 않으며, 유지보수자가 최신 버전으로 업데이트해야 합니다.

이 문제가 Angus' Events Plugin 📅 에서 보고되었고 해당 항목이 고장 난 것으로 표시되어 있으므로, 앞으로 나아갈 방법을 찾아야 합니다.

이 문제를 겪고 있는 분들을 위해 확인드립니다. StringIO 3.0.7 이상 버전에서는 플러그인이 정상적으로 빌드됩니다.