Funziona, grazie!
Ciao @michaeld @RGJ, non sono sicuro se questo sia il posto giusto per chiedere, ma sto riscontrando un problema simile con ffi quando utilizzo il repository su https://github.com/communiteq/discourse-siwe-auth e anche su https://github.com/spruceid/discourse-siwe-auth.
I, [2025-08-26T12:22:42.475531 #1] INFO -- :
I, [2025-08-26T12:22:42.475839 #1] INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
rake aborted!
Gem::LoadError: can't activate ffi-1.17.1-x86_64-linux-gnu, already activated ffi-1.17.2-x86_64-linux-gnu (Gem::LoadError)
/var/www/discourse/lib/plugin_gem.rb:25:in `load'
/var/www/discourse/lib/plugin/instance.rb:861:in `gem'
/var/www/discourse/plugins/discourse-siwe-auth/plugin.rb:23:in `activate!'
/var/www/discourse/lib/plugin/instance.rb:806:in `instance_eval'
/var/www/discourse/lib/plugin/instance.rb:806:in `activate!'
/var/www/discourse/lib/discourse.rb:344:in `block in activate_plugins!'
/var/www/discourse/lib/discourse.rb:341:in `each'
/var/www/discourse/lib/discourse.rb:341:in `activate_plugins!'
/var/www/discourse/config/application.rb:196:in `block in <class:Application>'
/var/www/discourse/lib/plugin.rb:6:in `initialization_guard'
/var/www/discourse/config/application.rb:196:in `<class:Application>'
/var/www/discourse/config/application.rb:62:in `<module:Discourse>'
/var/www/discourse/config/application.rb:61:in `<top (required)>'
/var/www/discourse/Rakefile:7:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.0/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
(See full trace by running task with --trace)
Sezione hook della mia app self-hosted di Discourse:
hooks:
before_code:
- exec:
cmd:
- gem install rubyzip
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/communiteq/discourse-siwe-auth.git
- git clone https://github.com/discourse/discourse-code-review.git
Per ora, proverò a fare un fork del tuo repository e ad aumentare la versione, dato che ho una scadenza per migrare questa istanza di Discourse. Volevo solo informarti di questo.
Vorrei anche sapere se il plugin è attivamente mantenuto da Communiteq.
Grazie in anticipo!
Senza guardare il codice…
Potrebbe essere che ffi sia ora nel core e non sia necessario aggiungerlo?
Non sono molto esperto di Ruby, quindi non posso esprimere un parere sul plugin, ma posso confermare che aggiornare ffi a 1.17.2 nel repository forkato funziona alla grande, e con aggiornare intendo cambiare plugin.rb con:
gem 'ffi', '1.17.2', require: false
Questo ha funzionato per me, ma mi piacerebbe davvero usare il plugin mantenuto ufficialmente invece del mio fork.
Il mio suggerimento è stato di rimuovere completamente la gemma. E quando funzionerà, invia una PR con quella riga rimossa.
Siamo più che altro mantenuti passivamente. Il repository ufficiale è in spruceid, ma poiché gestiamo un certo numero di siti che utilizzano il plugin, in pratica siamo noi a correggerlo per primi. Questa volta ci avete battuto sul tempo, è ancora nella nostra lista di plugin da modificare per la 3.5.
Se nessuno farà una PR al repository ufficiale, mi occuperò di questo entro la fine di questa settimana o l’inizio della prossima.
Preferirei lasciare a te il compito di aprire la PR, poiché probabilmente hai considerazioni o test relativi al plugin di cui non sono a conoscenza, dato che conosco molto poco questo servizio mentre sono in fase di migrazione.
Grazie per il tuo aiuto, le tue informazioni e i tuoi contributi su questo argomento.
Ho corretto il plugin: era solo questione di rimuovere l’inclusione esplicita della gemma ffi.
Ho anche creato una pull request al repository originale. Finché la PR non sarà accettata, puoi usare https://github.com/communiteq/discourse-siwe-auth al posto del repository originale.
Per il momento modificherò anche il link nell’OP in questo senso.
Sto guardando il file del plugin .discourse-compatibility che mostra il supporto per versioni < 3.2.0.beta2-dev. Ci saranno problemi nell’utilizzo di questo plugin con la versione più recente di Discourse?
Poiché quel file indica la compatibilità retroattiva, l’assenza di versioni recenti nel file .plugin-compatibility è una cosa buona.
