Discourse non trova le gemme specificata nel plugin

Ciao! Sto sviluppando un plugin per abilitare Sign-In with Ethereum su Discourse. Il problema è che quando installo il plugin ricevo un errore con una delle dipendenze (rbsecp256k1).

ERROR:  Error installing rbsecp256k1:
	ERROR: Failed to build gem native extension.

    current directory: /var/www/discourse/plugins/sdp/gems/2.7.5/gems/rbsecp256k1-5.1.0/ext/rbsecp256k1
/usr/local/bin/ruby -I /usr/local/lib/ruby/site_ruby/2.7.0 -r ./siteconf20220303-1234-gyqjb.rb extconf.rb
extconf.rb:3:in `require': cannot load such file -- mini_portile2 (LoadError)
	from extconf.rb:3:in `<main>'

extconf failed, exit code 1

Mi chiedo cosa possa succedere dato che funziona in sviluppo se installo manualmente le dipendenze.

Quella gemma ha dipendenze a livello di sistema operativo che devi avere installate, secondo la loro documentazione: GitHub - etscrivner/rbsecp256k1: Compiled Ruby wrapper around libsecp256k1 for secp256k1 ECDSA.

Sì, li ho già installati il problema si verifica quando non riesce a trovare mini_portile2, che è una delle sue dipendenze.

1 Mi Piace

Come hai dichiarato la dipendenza mini_portile2 sul tuo plugin?

1 Mi Piace

Ho riscontrato lo stesso problema durante l’installazione della stessa dipendenza gem.

Dai un’occhiata

Mi piacerebbe molto se ci fosse una soluzione più diretta.

2 Mi Piace

Non puoi semplicemente eliminarlo dato che è già nel core di Discourse?

1 Mi Piace

Voglio dire, posso ma il problema non è con quella gemma, il problema è con rbsecp256k1, quando prova a compilarlo non trova la gemma mini_portile2 (come dice l’errore: cannot load such file -- mini_portile2 (LoadError) from extconf.rb:3:in \u003cmain\u003e')

Stai ripercorrendo lo stesso terreno di @fzngagan, vedi il suo link sopra: Having a hard time installing `eth` gem in a plugin in production - #3 by fzngagan, forse puoi contribuire alla sua soluzione.

La sua soluzione funziona, ma non la considero un’opzione valida, nessun utente sarebbe disposto a fare tutto ciò solo per aggiungere un plugin. Volevo solo sapere se qualcuno poteva pensare a un approccio migliore (il più vicino possibile a semplicemente aggiungere il repository e il gioco è fatto). come ha detto lui stesso @fzngagan:

Mi piacerebbe molto se ci fosse una soluzione più diretta.

E ora abbiamo due argomenti sullo stesso identico problema…

1 Mi Piace

Sto restringendo il campo, non sembra essere correlato alle gemme, sembra essere correlato a extconf.rb. Ho provato con altre poche gemme con una configurazione più complessa (ruby-magic e libusb), entrambe non funzionano (per motivi diversi) hanno tutte in comune dipendenze in extconf.rb.

1 Mi Piace

Questo problema è stato risolto negli ultimi branch tests-passed e stable di discourse.

2 Mi Piace

Non ancora, la PR non è stata ancora unita.

1 Mi Piace

@RGJ Ci sono stati alcuni test falliti che dovevano essere affrontati prima. Ora è unito.

2 Mi Piace