Pagina 1 di 2

[SOLVED] Poedit non va

Inviato: gio 12 set 2019, 21:26
da gian_d
Ho installato Poedit dallo slackbuild, comprese le dipendenze richieste: LucenePlusPlus ex-novo, mentre gtest gtkspell e wxGTK3 erano già installati. All'inizio wxGTK3 mi dava qualche problema perché l'installazione di Poedit si fermava nella verifica di wxGTK3, ma poi ho risolto (il link simbolico wx-config era errato).
Alla fine comunque l'installazione è terminata correttamente.

A questo punto lancio Poedit e compare una finestra di dialogo con l'avviso di un errore. Questo è il testo:

Codice: Seleziona tutto

ASSERT INFO:
./include/wx/arrstr.h(200): assert "nIndex < m_nCount" failed in Item(): wxArrayString: index out of bounds

BACKTRACE:
[1] wxTranslations::GetBestTranslation(wxString const&, wxString const&)
[2] boost::wrapexcept<boost::exception_detail::remove_error_info_injector<boost::bad_function_call>::type> boost::exception_detail::enable_both<boost::bad_function_call>(boost::bad_function_call const&)
[3] boost::wrapexcept<boost::exception_detail::remove_error_info_injector<boost::bad_function_call>::type> boost::exception_detail::enable_both<boost::bad_function_call>(boost::bad_function_call const&)
[4] wxEntry(int&, wchar_t**)
[5] void boost::throw_exception<Lucene::ExceptionTemplate<Lucene::ExceptionTemplate<Lucene::LuceneException, (Lucene::LuceneException::ExceptionType)21>, (Lucene::LuceneException::ExceptionType)6> >(Lucene::ExceptionTemplate<Lucene::ExceptionTemplate<Lucene::LuceneException, (Lucene::LuceneException::ExceptionType)21>, (Lucene::LuceneException::ExceptionType)6> const&)
[6] __libc_start_main
[7] void boost::throw_exception<Lucene::ExceptionTemplate<Lucene::ExceptionTemplate<Lucene::LuceneException, (Lucene::LuceneException::ExceptionType)21>, (Lucene::LuceneException::ExceptionType)6> >(Lucene::ExceptionTemplate<Lucene::ExceptionTemplate<Lucene::LuceneException, (Lucene::LuceneException::ExceptionType)21>, (Lucene::LuceneException::ExceptionType)6> const&)
Qualcuno ci capisce qualcosa? Da quel poco che capisco il problema è generato dalle librerie di LucenePlusPlus, ma vedendo che c'è in mezzo il boost mi viene il sospetto che la versione di Poedit per cui è predisposto lo slackbuild non sia compatibile con le versioni più recenti del boost (nella fattispecie 1.71).

Nel README del repository c'è scritto: poedit 2.0 will require newer boost (1.60+), so it works only in -current.. Ma già in passato mi era capitato un problema di incompatibilità di una dipendenza di OpenSceneGraph che compilava regolarmente con il boost 1.69 ma non con il boost 1.70.

E' possibile? Comunque provo a vedere se esiste il sorgente di Poedit di una versione più recente

Re: Poedit non va

Inviato: ven 13 set 2019, 15:33
da ponce
quello che ti posso dire e' che l'ho compilato "from scratch", insieme a tutte le sue dipendenze, e funziona: io proverei a fare lo stesso, disinstallandole preventivamente se gia' installate.

Re: Poedit non va

Inviato: ven 13 set 2019, 17:26
da gian_d
Intendi da un sistema pulito?

Re: Poedit non va

Inviato: ven 13 set 2019, 17:28
da gian_d
Ora ne installo uno in una macchina virtuale e provo

Re: Poedit non va

Inviato: sab 14 set 2019, 20:00
da gian_d
Niente da fare, ho installato una current pulita in una macchina virtuale, ho installato solo le librerie necessarie (wxGTK3, gtest, LucenePlusPlus) ma il problema si ripresenta. Ho provato anche con una vecchia versione del boost, la 1.69, ricompilando anche LucenePlusPlus, ma non cambia nulla. A questo punto mi viene il sospetto che possa dipendere da un conflitto con wxGTK3, ma lì non ci voglio mettere mano perché wxGTK3 e wxPython mi servono funzionanti per altre piattaforme.
Chissà dov'è l'inghippo, ci rinuncio.

Re: Poedit non va

Inviato: sab 14 set 2019, 21:05
da ponce
gian_d ha scritto:Niente da fare, ho installato una current pulita in una macchina virtuale, ho installato solo le librerie necessarie (wxGTK3, gtest, LucenePlusPlus) ma il problema si ripresenta.
probabilmente non e' rilevante, ma alla lista delle dipendenze mancano enchant2 e gtkspell3...
Ho provato anche con una vecchia versione del boost, la 1.69, ricompilando anche LucenePlusPlus, ma non cambia nulla. A questo punto mi viene il sospetto che possa dipendere da un conflitto con wxGTK3, ma lì non ci voglio mettere mano perché wxGTK3 e wxPython mi servono funzionanti per altre piattaforme.
che wxGTK3 e wxPython confliggano e' scritto anche nei loro README... ma, perdona la curiosita': wxPython per cosa ti serve?
tra l'altro nella current pulita della macchina virtuale non dovresti averlo installato, no?

Re: Poedit non va

Inviato: sab 14 set 2019, 22:01
da gian_d
nel sistema ho gtkspell 2 non so se possa incidere, comunque proviamo, libreria in più o in meno... Stesso discorso per enchant.
Poco fa ho anche provato a installare l'ultima versione di Poedit, la 2.2.3, mi dava un'errore di compilazione a causa di un costruttore errato in un file cpp. Trattandosi della costruzione di un banale collegamento ipertestuale in uno splashscreen ho tagliato la testa al toro e rimosso quella parte di codice. La compilazione è andata bene ma anche in questo caso l'avvio del programma mi dà sempre lo stesso errore!

Sono al corrente dei conflitti di wxPython e wxGTK3, infatti finora li ho gestiti senza problemi, le applicazioni che dipendono da loro vanno. L'unico problema che ho riscontrato è recentissimo e salta fuori proprio con Poedit perché non trovava wx-config. Ravanando, ho poi notato che in /usr/bin wx-config era un collegamento simbolico a gtk2-unicode-3.0 (inesistente) e non a gtk2-unicode-3.1, perciò ho aggirato il problema mettendo un hardlink corretto alla libreria presente.
All'inizio ho pensato che derivasse dal pasticcio tra wxPython e wxGTK ma oggi mi sono reso conto che non è qui il problema: nella slackware della macchina virtuale è installato wxGTK ma non wxPython, ma anche lì wx-config risultava come collegamento errato a gtk2-unicode-3.0. Boh. Comunque risolvibile a mano.

A margine, wxPython è indicato come dipendenza non opzionale di Grass GIS. Non so se l'installazione funziona anche con il solo wxGTK, ma non ho neppure pensato di provare... :-D

Comunque, domani proviamo a installare gtkspell3, non fosse mai...

Re: Poedit non va

Inviato: sab 14 set 2019, 22:49
da ponce
gian_d ha scritto:nel sistema ho gtkspell 2 non so se possa incidere, comunque proviamo, libreria in più o in meno... Stesso discorso per enchant.
gtkspell-2.x e enchant-1.x sono due pacchetti diversi da gtkspell3 e enchant2.
Poco fa ho anche provato a installare l'ultima versione di Poedit, la 2.2.3, mi dava un'errore di compilazione a causa di un costruttore errato in un file cpp. Trattandosi della costruzione di un banale collegamento ipertestuale in uno splashscreen ho tagliato la testa al toro e rimosso quella parte di codice. La compilazione è andata bene ma anche in questo caso l'avvio del programma mi dà sempre lo stesso errore!

Sono al corrente dei conflitti di wxPython e wxGTK3, infatti finora li ho gestiti senza problemi, le applicazioni che dipendono da loro vanno. L'unico problema che ho riscontrato è recentissimo e salta fuori proprio con Poedit perché non trovava wx-config. Ravanando, ho poi notato che in /usr/bin wx-config era un collegamento simbolico a gtk2-unicode-3.0 (inesistente) e non a gtk2-unicode-3.1, perciò ho aggirato il problema mettendo un hardlink corretto alla libreria presente.
All'inizio ho pensato che derivasse dal pasticcio tra wxPython e wxGTK ma oggi mi sono reso conto che non è qui il problema: nella slackware della macchina virtuale è installato wxGTK ma non wxPython, ma anche lì wx-config risultava come collegamento errato a gtk2-unicode-3.0. Boh. Comunque risolvibile a mano.
ma perche' dici "collegamento errato"? qui, con wxGTK3 (lo stesso che dovresti aver installato te, non wxGTK, che e' un altro pacchetto) io ho

Codice: Seleziona tutto

# ls -la /usr/bin/wx-config
lrwxrwxrwx 1 root root 37 Sep 11 21:15 /usr/bin/wx-config -> /usr/lib64/wx/config/gtk2-unicode-3.0
e il collegamento e' corretto!
quel file e' parte del pacchetto wxGTK3-3.0.4-x86_64-2ponce, fatto usando lo SlackBuild.
perche' cambi i link? io non lo faccio e qui funziona tutto: non ha senso farsi una macchina virtuale pulita se poi cambi i link manualmente.
A margine, wxPython è indicato come dipendenza non opzionale di Grass GIS. Non so se l'installazione funziona anche con il solo wxGTK, ma non ho neppure pensato di provare... :-D

Comunque, domani proviamo a installare gtkspell3, non fosse mai...
secondo me wxPython non ti dovrebbe servire a niente, lo dovresti poter rimuovere (e dopo reinstallare wxGTK3, come spiega il README di wxGTK3), al limite ti puoi rifare anche il pacchetto di grass senza averlo installato.

Re: Poedit non va

Inviato: dom 15 set 2019, 12:39
da gian_d
ponce ha scritto:
gian_d ha scritto:nel sistema ho gtkspell 2 non so se possa incidere, comunque proviamo, libreria in più o in meno... Stesso discorso per enchant.
gtkspell-2.x e enchant-1.x sono due pacchetti diversi da gtkspell3 e enchant2.
Sì, ovviamente.
Comunque li ho installati ma non cambia nulla
ma perche' dici "collegamento errato"? qui, con wxGTK3 (lo stesso che dovresti aver installato te, non wxGTK, che e' un altro pacchetto) io ho

Codice: Seleziona tutto

# ls -la /usr/bin/wx-config
lrwxrwxrwx 1 root root 37 Sep 11 21:15 /usr/bin/wx-config -> /usr/lib64/wx/config/gtk2-unicode-3.0
e il collegamento e' corretto!
quel file e' parte del pacchetto wxGTK3-3.0.4-x86_64-2ponce, fatto usando lo SlackBuild.
perche' cambi i link? io non lo faccio e qui funziona tutto: non ha senso farsi una macchina virtuale pulita se poi cambi i link manualmente.
Ti confesso che anche a me funzionava tutto, ma di questa cosa mi sono accorto proprio provando a installare Poedit. Nel dettaglio:
1) durante lo sviluppo del configure mi dava il messaggio che la versione 2.8.x di wxwidgets non era compatibile perché era necessaria la versione 3.0 o superiore. Questo ci stava perché il wx-config puntava ancora alle librerie di wxPython (versione 2.8). Ho perciò corretto reinstallando il pacchetto di wxGTK3 (mi conservo i pacchetti precompilati per riutilizzarli all'occorrenza senza dover ricompilare i sorgenti)
2) dopo la reinstallazione di wxGTK3 il configure di Poedit si arrestava perché non trovava wx-config. In effetti il comando /usr/bin/wx-config sul terminale non dava alcun risultato: file non trovato, pur essendo presente in /usr/bin!
3) ravanando da terminale ho poi riscontrato che wx-config è un collegamento simbolico che punta a GTK2-unicode-3.0 mentre la libreria installata è GTK2-unicode-3.1. Correggendo il collegamento simbolico le cose si sono rimesse a posto

Scoperto l'arcano (si fa per dire): a te il collegamento risulta giustamente corretto per un semplice motivo: lo slackbuild del repository è impostato per la versione 3.0.4 di wxWidgets, ma io ho installato la 3.1. L'installazione imposta wx-config come collegamento a gtk2-unicode-3.0 e non 3.1. In realtà ho appena verificato che si tratta di un mio errore nell'adattamento dello slackbuild: ho impostato solo la versione, ma non ho corretto - perché mi era sfuggito - questa parte del codice:

Codice: Seleziona tutto

# Now let's fix the broken symlink created by the package
if [ "${STATIC:-no}" = "yes" ]; then
ln -fs /usr/lib${LIBDIRSUFFIX}/wx/config/gtk2-unicode-static-3.0 \
        $PKG/usr/bin/wx-config
else
  ln -fs /usr/lib${LIBDIRSUFFIX}/wx/config/gtk2-unicode-3.0 \
       $PKG/usr/bin/wx-config
fi
Va be', tutta esperienza :-D
secondo me wxPython non ti dovrebbe servire a niente, lo dovresti poter rimuovere (e dopo reinstallare wxGTK3, come spiega il README di wxGTK3), al limite ti puoi rifare anche il pacchetto di grass senza averlo installato.
In effetti non ho verificato cosa succede rimuovendo wxPython. Se serve solo per la compilazione siamo d'accordo, ma se il programma lo usa come dipendenza anche in runtime non posso rimuoverlo. Peraltro, proprio stamattina stavo installando youtube-dl-gui in una macchina in cui è presente solo wxGTK3 e la compilazione si arresta perché richiede come dipendenza wxPython.
In ogni modo, la compresenza di wxGTK3 e wxPython non mi crea problemi perciò li lascio entrambi installati. Se poi l'installazione di un programma rileva un errore attraverso wx-config so dove andare a parare soprattutto ora che mi hai fatto individuare quel problemino del collegamento simbolico "errato".

A monte resta il problema di Poedit che non parte per un errore in runtime. A questo punto mi resta da verificare cosa succede se invece di wxGTK3 3.1 installo wxGTK3 3.0

Re: Poedit non va

Inviato: dom 15 set 2019, 14:05
da ponce
gian_d ha scritto:A monte resta il problema di Poedit che non parte per un errore in runtime. A questo punto mi resta da verificare cosa succede se invece di wxGTK3 3.1 installo wxGTK3 3.0
probabilmente ti funzionera' come funziona anche qui: gli script su SBo sono testati con le versioni delle dipendenze che sono su SBo.
se tu mi avessi detto prima che avevi, di tua iniziativa, aggiornato alla versione 3.1.x di wxGTK3 ti avrei gia' detto che ci sono incompatibilita' con diverse delle applicazioni su SBo che lo usano come dipendenza (ed e' il motivo per cui Willy non e' passato a questa versione).
magari quando fai queste segnalazioni specifica cosa hai customizzato nel tuo sistema, senno' diventa davvero molto difficile aiutarti.

Re: Poedit non va

Inviato: dom 15 set 2019, 14:12
da gian_d
Più che giusto, mea culpa

Re: [SOLVED] Poedit non va

Inviato: dom 15 set 2019, 14:48
da gian_d
La causa era proprio la 3.1 di wxGTK3. Ho messo la 3.0, ricompilato Poedit e il programma va. Grazie per la pazienza, Matteo, e chiedo scusa per la perdita di tempo

Re: [SOLVED] Poedit non va

Inviato: dom 15 set 2019, 16:24
da ponce
comunque, per precisare quanto ho scritto sopra, se installi wxPython3 (che dipende da wxGTK3 e non sovrascrive /usr/bin/wx-config), youtube-dl-gui funziona lo stesso, non e' indispensabile wxPython.
non ho provato, ma credo sia lo stesso per grass.

Re: [SOLVED] Poedit non va

Inviato: dom 15 set 2019, 20:18
da gian_d
wxPython3 non l'avevo preso in considerazione. Penso che abbia ragione, questa soluzione taglierebbe la testa al toro senza dover ogni volta reinstallare

Re: [SOLVED] Poedit non va

Inviato: dom 15 set 2019, 21:39
da gian_d
Esattamente come dicevi. Ho disinstallato wxPython e ne ho approfittato per verificare che è necessario in runtime: né Grass né youtube-dl-gui si avviano in assenza di un modulo wx.
Dopo l'installazione di wxPython3, invece, tutto normale: entrambi i programmi si avviano e senza ricompilarli.

Non vorrei sparare fesserie, ma secondo me la dipendenza è gestita via python, quindi è probabile che sarebbe sufficiente installare wxPython con pip o pip3