Erro ao atualizar com plugin de eventos quebrado

Estou também tendo problemas para compilar a versão estável mais recente, que estava compilando bem até 1-2 semanas atrás. Acho que pode estar relacionado a algumas alterações relacionadas ao Ruby (mesmo que as do discourse_docker tenham sido revertidas), pois o problema é com um gem que funcionava anteriormente e agora falha na compilação.

O gem (stringio) está sendo puxado (pelo menos?) pelo plugin discourse-events, mas o plugin está usando este gem e a mesma versão há pelo menos 2 anos (provavelmente mais). Tentei compilar com uma versão mais antiga (anteriormente conhecida por funcionar) do plugin e ainda falha. Então, acho que algo mais mudou no Discourse, talvez em preparação para o Ruby 3.3.1, que também chegou ao branch estável?

Talvez seja importante notar que isso está acontecendo apenas em uma máquina ARM (na qual tenho compilado o Discourse bem nos últimos meses). Tentar compilar a mesma configuração exata em x86 funciona bem. Portanto, parece ser dependente de ARM64, e embora o gem seja puxado pelo discourse-events, é o mesmo gem (e versão) que funcionava anteriormente. Algo no próprio Discourse deve ter mudado também, eu acho. Talvez @Falco tenha alguma ideia do que pode estar acontecendo da perspectiva ARM64?

Log de compilação
[...]
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

Desculpe se isso não estiver relacionado às alterações recentes do Ruby. Ficarei feliz em abrir um novo tópico, se for o caso.

StringIO 3.0.2 não é compatível com Ruby 3.3, o mantenedor precisa atualizá-lo para a versão mais recente.

Dado que isso vem de Events Plugin 📅 e está listado como quebrado, você precisará encontrar uma maneira de seguir em frente.

1 curtida

Uma postagem foi dividida em um novo tópico: Alguns tópicos quebrados… Discotoc?

Para quem estiver com este problema, posso confirmar que o plugin compila com StringIO 3.0.7 ou superior.

2 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.