Pagina 1 di 1

[RISOLTO] notmuch-vim e bindings ruby

Inviato: lun 6 gen 2025, 0:11
da joe
Sto esplorando alcune alternative per una gestione delle email più snella dell'attuale client in uso Mailspring.

Mi ha incuriosito il tool "notmuch".
In accordo con la filosofia unix svolge solo un pezzetto del quadro completo.

Come "frontend" vi si può abbinare tra gli altri addirittura vim. E la cosa mi ha ancor più incuriosito... insomma devo provare sta cosa. 8)

Al ché ho installato notmuch da SBo.
Ho quindi installato notmuch-vim che in pratica è un addon per vim.
Usando Vundle, si aggiunge nel vimrc, nella sezione opportuna:

Codice: Seleziona tutto

Plugin 'felipec/notmuch-vim'
Qui il link al progetto, sto seguendo le indicazioni incluse:

https://github.com/felipec/notmuch-vim

Ho installato il plugin con gitclone nella dir di vim, attivato poi via Vundle... se ho ben capito:

Codice: Seleziona tutto

git clone https://github.com/felipec/notmuch-vim.git ~/.vim/pack/plugins/start/notmuch-vim
Ho verificato che vim avvia il supporto a ruby come indicato, e dovremo esserci:

Codice: Seleziona tutto

$ vim --version | grep +ruby
+cscope            +localmap          +ruby/dyn          +wildignore
Quindi ho verificato che i "bindings ruby" siano compilati correttamente in notmuch come indicato, il comando seguente non dovrebbe ritornare errori:

Codice: Seleziona tutto

$ ruby -e "require 'notmuch'"
<internal:/usr/lib64/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- notmuch (LoadError)
        from <internal:/usr/lib64/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from -e:1:in `<main>'
E invece qualche problemino salta fuori, come si vede qui sopra.

Da come dice nelle indicazioni sembrerebbe che questi bindings ruby vadano compilati.
Ho cercato un po' e qui leggo:

https://git.notmuchmail.org/git/notmuch ... vim/README
=== ruby bindings ===

Check if you are able to run the following command cleanly:

% ruby -e "require 'notmuch'"

If you don't see any errors, it means it's working and you can go to the next
section.

If it's not, you would need to compile them. Go to the 'bindings/ruby'
directory in the notmuch source tree.
Allora ho preso il tarball di notmuch scompattato e sono entrato nella dir bindings/ruby.
C'è un README che dice:

Codice: Seleziona tutto

# cat ../notmuch-0.36/bindings/ruby/README
To build the the notmuch ruby extension, run the following commands
from the *top level* notmuch source directory:

% ./configure
% make ruby-bindings

The generic documentation about building notmuch also applies.
Ignorantemente ho provato a piazzare quel "make ruby-bindings" prima del "make" liscio che si trova nello slackbuild.
Ed in effetti la compilazione dei bindings ruby avviene.

Alla fine ho aggiornato il pacchetto così creato con:

Codice: Seleziona tutto

upgrade-pkg --reinstall /tmp/notmuch-ecc.tgz
Rilanciato ruby -e "require 'notmuch'"...
Ma salta fuori lo stesso errore di prima.

Cosa ne pensate?
È un errore da considerare importante o posso anche ignorarlo?
Ed eventualmente come si potrebbe risolverlo?

Grazie in anticipo come sempre!

Re: notmuch-vim e bindings ruby

Inviato: lun 6 gen 2025, 0:33
da joe
Mi rispondo da solo:
l'errore è importante, lanciando poi "vim -C NotMuch" salta nuovamente fuori e il plugin di fatto non funziona proprio.

Qui però sembra esserci una soluzione:
https://github.com/Homebrew/homebrew-core/issues/30019

In pratica i bindings ruby vengono compilati col make liscio, ma non vengono installati col "make install".
Allora ho modificato lo slackbuild di notmuch così:

Codice: Seleziona tutto

make
make install DESTDIR=$PKG
cd bindings/ruby
make install DESTDIR=$PKG
cd ../..
In pratica bisogna entrare nella dir dei bindings ruby e lanciare da lì il make install, poi si ritorna alla root dei sorgenti e si prosegue con lo script originari di SBo.
Risultato il comando:

Codice: Seleziona tutto

ruby -e "require 'notmuch'"
non riporta nulla in output. Niente errori come dovrebbe essere.

Avviando "vim -C NotMuch" salta fuori una bella lista di messaggi mail... Devo configurare notmuch meglio, bisognerà vedere l'usabilità sul campo, ma per il momento sembra incoraggiante.

Re: [RISOLTO] notmuch-vim e bindings ruby

Inviato: lun 6 gen 2025, 9:17
da ponce
ottima scoperta!

se non l'hai ancora fatto sarebbe utile segnalare la cosa (che i bindings per ruby non sono installati dal "make install" nella directory principale) al maintainer su SBo di notmuch...

Re: [RISOLTO] notmuch-vim e bindings ruby

Inviato: lun 6 gen 2025, 13:47
da joe
Sì ci stavo pensando anch'io in effetti...
Il problema credo sia dovuto al Makefile alla fine no?
Sono abbastanza ignorante in materia, però quello che ho fatto io a mano, cioè entrare nella subdir e lanciare da lì il "make install", dovrebbe gestirlo direttamente il Makefile se non sbaglio... torna il discorso?

Ti chiedo perché magari già che siamo di strada nel fargli presente il problema, potrei suggerirgli un paio di soluzioni:
quella che ho testato io modificando lo SlackBuild alla buona, e magari in alternativa anche una patch più "raffinata" che vada applicata al Makefile ex-ante, in modo che poi il "make install" funzioni come deve senza manovre troppo esotiche nello SlackBuild.
Non ho idea di quanto possa essere complicata tale patch perché come dicevo sono ignorante in tema di Makefile, però non credo sia nulla di trascendentale visto che sappiamo quali operazioni deve eseguire, cioè installare alcuni files nella subdir "bindings/ruby".

Re: [RISOLTO] notmuch-vim e bindings ruby

Inviato: lun 6 gen 2025, 20:35
da ponce
ti conviene parlarne col maintainer, che dovrebbe conoscere il programma molto meglio di me...

Re: [RISOLTO] notmuch-vim e bindings ruby

Inviato: lun 6 gen 2025, 20:49
da joe
Sì alla fine ho inviato una mail al maintainer... vediamo se risponde o comunque se modifica. In caso contrario potrei mettere un messaggio anche su slackbuilds users. Dico così perché vedo dal changelog dello slackbuild che l'ultima modifica risale al "2022-07-02". Nel frattempo notmuch è passato dalla versione 0.36 alla 0.38.3 tra l'altro. Non vorrei mai che il manutentore si sa dato alla macchia e che il mio report finisca chissà dove.

Dal canto mio comunque, tanto per la cronaca, lanciando il makeinstall dalla subdir bindings/ruby, viene installato un solo file in più:

usr/lib64/ruby/vendor_ruby/3.0.0/x86_64-linux/notmuch.so

Quel file viene creato a valle della compilazione regolare dal make lisco, in pratica compila ma poi il make install lo ignora. Strano...
Non vorrei essermi perso per strada io qualche opzione documentata da aggiungere tipo al configure o similari... ovviamente nell'eventualità se l'è perse per strada anche il maintainer dello slackbuild.

Va be' ad ogni modo ho provato a creare il pacchetto della versione nuova 0.38.3, sempre con la correzione rozza nello slackbuild, e a quanto pare funziona, per cui per il momento mi accontento così.

Ora devo vedere come integrare il tutto con una banale casella di posta GMail e testare se mi è comodo oppure no.
Grazie per le risposte!