Error al actualizar con el plugin de eventos rotos

También tengo problemas para compilar la última versión estable, que funcionaba bien hasta hace 1 o 2 semanas. Creo que puede estar relacionado con algunos cambios recientes en Ruby (incluso si los de discourse_docker se han revertido), ya que el problema es con una gema que funcionaba anteriormente y ahora falla al compilar.

La gema (stringio) está siendo extraída (al menos) por el plugin discourse-events, pero el plugin ha estado utilizando esta gema y la misma versión durante al menos los últimos 2 años (probablemente más). He intentado compilar con una versión anterior (que se sabía que funcionaba) del plugin y todavía falla. Así que creo que algo más ha cambiado en Discourse, quizás en preparación para Ruby 3.3.1, que también ha llegado a la rama estable.

Quizás sea importante destacar que esto solo ocurre en una máquina ARM (en la que he estado compilando Discourse sin problemas durante los últimos meses). Intentar compilar la misma configuración exacta en x86 funciona bien. Por lo tanto, parece depender de ARM64, y aunque la gema está siendo extraída por discourse-events, es la misma gema (y versión) que funcionaba anteriormente. Algo en el propio Discourse debe haber cambiado también, creo. ¿Quizás @Falco tenga alguna idea de lo que puede estar sucediendo desde la perspectiva de ARM64?

Registro de compilación
[...]
comprobando la versión compatible de docker_manager: 9523f7a88453ce1863071bcc2bc88130b60efee5
HEAD es ahora en 9523f7a Actualizar traducciones (#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

Disculpas si esto no está relacionado con los cambios recientes de Ruby en absoluto; estaré encantado de abrir un nuevo tema si ese es el caso.

StringIO 3.0.2 no es compatible con Ruby 3.3, el mantenedor necesita actualizarlo a la última versión.

Dado que esto proviene de Events Plugin 📅 y está listado como roto, tendrás que encontrar una manera de avanzar.

1 me gusta

Se dividió una publicación en un nuevo tema: Algunos temas rotos… ¿Discotoc?

Para cualquiera que se encuentre con esto, puedo confirmar que el plugin se compila con StringIO 3.0.7 o superior.

2 Me gusta

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