Errore durante l'aggiornamento con il plugin eventi rotto

Ho anche problemi a compilare l’ultima versione stabile, che fino a 1-2 settimane fa veniva compilata correttamente. Penso che possa essere correlato ad alcune modifiche di Ruby (anche se quelle in discourse_docker sono state annullate), poiché il problema riguarda una gemma precedentemente funzionante che ora non si compila più.

La gemma (stringio) viene scaricata (almeno?) dal plugin discourse-events, ma il plugin utilizza questa gemma e la stessa versione da almeno 2 anni (probabilmente di più). Ho provato a compilare con una versione precedente (già nota per funzionare) del plugin e continua a fallire. Quindi penso che qualcosa sia cambiato in Discourse, forse in preparazione per Ruby 3.3.1, che è arrivato anche sul ramo stabile?

Forse è importante notare che questo sta accadendo solo su una macchina ARM (su cui ho compilato Discourse correttamente negli ultimi mesi). Tentare di compilare la stessa configurazione su x86 funziona correttamente. Quindi sembra dipendere da ARM64 e, sebbene la gemma venga scaricata da discourse-events, è la stessa gemma (e versione) che funzionava in precedenza. Qualcosa in Discourse stesso deve essere cambiato, penso. Forse @Falco ha qualche idea su cosa potrebbe succedere dal punto di vista ARM64?

Log di compilazione
[...]
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

Mi scuso se questo non è correlato alle recenti modifiche di Ruby, sono felice di aprire un nuovo argomento se è il caso.

StringIO 3.0.2 non è compatibile con Ruby 3.3, il manutentore deve aggiornarlo all’ultima versione.

Dato che questo proviene da Events Plugin 📅 e che è elencato come non funzionante, dovrai trovare una soluzione.

1 Mi Piace

Un post è stato diviso in un nuovo argomento: Alcuni argomenti interrotti… Discotoc?

Per chiunque si trovi in questa situazione, posso confermare che il plugin viene compilato con StringIO 3.0.7 o versioni successive.

2 Mi Piace

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