[RISOLTO] notmuch-vim e bindings ruby

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3975
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

[RISOLTO] notmuch-vim e bindings ruby

Messaggio 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!
Ultima modifica di joe il lun 6 gen 2025, 0:33, modificato 1 volta in totale.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3975
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: notmuch-vim e bindings ruby

Messaggio 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.

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 3107
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 6.16.4
Desktop: lxde
Località: Pisa
Contatta:

Re: [RISOLTO] notmuch-vim e bindings ruby

Messaggio 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...

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3975
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: [RISOLTO] notmuch-vim e bindings ruby

Messaggio 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".

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 3107
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 6.16.4
Desktop: lxde
Località: Pisa
Contatta:

Re: [RISOLTO] notmuch-vim e bindings ruby

Messaggio da ponce »

ti conviene parlarne col maintainer, che dovrebbe conoscere il programma molto meglio di me...

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3975
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: [RISOLTO] notmuch-vim e bindings ruby

Messaggio 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!

Rispondi