Erreur lors de la mise à jour avec le plugin événements cassé

J’ai également des difficultés à compiler la dernière version stable qui fonctionnait bien il y a 1 à 2 semaines. Je pense que cela pourrait être lié à des changements récents dans Ruby (même si ceux de discourse_docker ont été annulés), car le problème concerne une gem qui fonctionnait auparavant et qui échoue maintenant à la compilation.

La gem (stringio) est tirée (au moins ?) par le plugin discourse-events, mais le plugin utilise cette gem et la même version depuis au moins 2 ans (probablement plus). J’ai essayé de compiler avec une ancienne version (qui fonctionnait auparavant) du plugin et cela échoue toujours. Je pense donc que quelque chose d’autre a changé dans Discourse, peut-être en préparation de Ruby 3.3.1, qui a également été intégré à la branche stable ?

Peut-être chose importante, cela ne se produit que sur une machine ARM (sur laquelle je compile Discourse sans problème depuis quelques mois). Essayer de compiler la même configuration sur x86 fonctionne bien. Cela semble donc lié à ARM64, et bien que la gem soit tirée par discourse-events, c’est la même gem (et la même version) qui fonctionnait auparavant. Quelque chose dans Discourse lui-même a dû changer aussi, je pense. Peut-être que @Falco a une idée de ce qui pourrait se passer du point de vue ARM64 ?

Journal de compilation
[... ]
checkout de la version compatible de docker_manager : 9523f7a88453ce1863071bcc2bc88130b60efee5
HEAD est maintenant à 9523f7a Mettre à jour les traductions (#205)

I, [2024-05-28T09:52:18.538215 #1]  INFO -- : cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
ERREUR : Erreur lors de l'installation de stringio :
	ERREUR : Échec de la compilation de l'extension native de la gem.

    répertoire actuel : /var/www/discourse/plugins/discourse-events/gems/3.3.1/gems/stringio-3.0.2/ext/stringio
/usr/local/bin/ruby extconf.rb
vérification de rb_io_extract_modeenc() dans ruby/io.h... oui
création de Makefile

    répertoire actuel : /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

    répertoire actuel : /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
compilation de stringio.c
stringio.c : Dans la fonction ‘strio_init’ :
stringio.c:343:24 : erreur : la taille du stockage de ‘convconfig’ n'est pas connue
  343 |     struct rb_io_enc_t convconfig;
      |                        ^~~~~~~~~~
stringio.c:343:24 : avertissement : variable ‘convconfig’ non utilisée [-Wunused-variable]
stringio.c : Au niveau supérieur :
cc1 : note : l'option de ligne de commande non reconnue ‘-Wno-self-assign’ aurait pu être destinée à masquer des diagnostics antérieurs
cc1 : note : l'option de ligne de commande non reconnue ‘-Wno-parentheses-equality’ aurait pu être destinée à masquer des diagnostics antérieurs
cc1 : note : l'option de ligne de commande non reconnue ‘-Wno-constant-logical-operand’ aurait pu être destinée à masquer des diagnostics antérieurs
make: *** [Makefile:248: stringio.o] Erreur 1

make a échoué, code de sortie 2

Les fichiers de gem resteront installés dans /var/www/discourse/plugins/discourse-events/gems/3.3.1/gems/stringio-3.0.2 pour inspection.
Résultats enregistrés dans /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
Installation réussie de uuidtools-2.2.0
1 gem installée
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
Installation réussie de iso-639-0.3.5
1 gem installée
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
Installation réussie de ice_cube-0.16.4
1 gem installée
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 est requis pour le support TimeWithZone, mais n'est pas requis pour une utilisation générale.
Installation réussie de icalendar-2.8.0
1 gem installée
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
Installation réussie de icalendar-recurrence-1.1.3
1 gem installée
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
Compilation des extensions natives. Cela peut prendre un certain temps...
Installation réussie de date-3.3.4
1 gem installée
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
Installation réussie de time-0.2.0
1 gem installée
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
Compilation des extensions natives. Cela peut prendre un certain temps...
Vous spécifiez la gem stringio dans /var/www/discourse/plugins/discourse-events/plugin.rb, mais elle n'existe pas !
Recherché : 
- /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


ÉCHEC
--------------------
Pups::ExecError : cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' a échoué avec le retour #<Process::Status: pid 1109 exit 255>
Emplacement de l'échec : /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec a échoué avec les paramètres {\"cd\"=>\"$home\", \"tag\"=>\"migrate\", \"hook\"=>\"db_migrate\", \"cmd\"=>[\"su discourse -c 'bundle exec rake db:migrate'\"] }
bootstrap a échoué avec le code de sortie 255

Désolé si cela n’a rien à voir avec les récents changements de Ruby – je suis heureux d’ouvrir un nouveau sujet si c’est le cas.

StringIO 3.0.2 n’est pas compatible avec Ruby 3.3, le mainteneur doit le mettre à jour vers la dernière version.

Étant donné que cela provient de Events Plugin 📅 et que cela est indiqué comme défectueux, vous devrez trouver une solution.

1 « J'aime »

Un message a été divisé dans un nouveau sujet : Certains sujets cassés… Discotoc ?

Pour ceux qui rencontrent ce problème, je peux confirmer que le plugin se compile avec StringIO 3.0.7 ou une version supérieure.

2 « J'aime »

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