[RISOLTO] Correzione di un errore nel sorgente di GDAL per rendere possibile l'installazione dallo SB sulla current
Inviato: lun 8 apr 2019, 22:25
Non so se sia attinente agli argomenti del forum, ma avrei una segnalazione da fare a Ponce. Sto installando gqis e tutte le dipendenze dagli Slackbuild usando il repository dei SB per la current su GitHub, come suggerito dallo stesso Ponce.
La compilazione dei sorgenti di GDAL 2.2.4 ha dato però un errore causato da poppler, in quanto il codice di un file cpp è incompatibile con la nuova versione di poppler presente sulla current nella dichiarazione (credo) di una costante.
Cercando in rete ho trovato un contesto simile, ma non ricordo l'indirizzo, credo sia in un forum attinente a GDAL. Chi ha risposto al quesito ha detto che il bug è stato corretto nelle versioni successive (da GDAL 2.3.0)
Ho provato a installare la 2.3.0 modificando l'impostazione della versione nello SlackBuild, ma l'errore persisteva perché probabilmente lo SlackBuild va integrato con l'applicazione di una patch.
Detto questo, dal momento che non so come impostare una patch, ho aggirato l'ostacolo in modo poco ortodosso, scompattando l'archivio tar.xz dei sorgenti di GDAL 2.2.4 e modificando direttamente la riga specifica del codice del file incriminato. Poi ho ricreato il tar compresso con xz e ho rilanciato lo SlackBuild. È andato a buon fine! Peraltro ho integrato lo SB con la specifica --with-ecw=/usr/local \ per permettere la visualizzazione dei file in formato JPEG 2000 e nel formato proprietario ECW usando libecwj2 3.3, una vecchia libreria del 2006, l'ultima open source, che ancora è disponibile in un repository in rete.
Venendo al dunque, il file sorgente incriminato è pdfobject.cpp presente nell'archivio scompattato nel percorso gdal-2.2.4/frmts/pdf/.
Il sorgente va modificato sostituendo la riga 1058
con la riga
Volendo si possono mantenere entrambe le righe in una condizione if per rendere la patch retrocompatibile con le vecchie versioni di poppler, ma non so fino a quale versione.
Questo è quanto, spero di essere stato chiaro.
La compilazione dei sorgenti di GDAL 2.2.4 ha dato però un errore causato da poppler, in quanto il codice di un file cpp è incompatibile con la nuova versione di poppler presente sulla current nella dichiarazione (credo) di una costante.
Cercando in rete ho trovato un contesto simile, ma non ricordo l'indirizzo, credo sia in un forum attinente a GDAL. Chi ha risposto al quesito ha detto che il bug è stato corretto nelle versioni successive (da GDAL 2.3.0)
Ho provato a installare la 2.3.0 modificando l'impostazione della versione nello SlackBuild, ma l'errore persisteva perché probabilmente lo SlackBuild va integrato con l'applicazione di una patch.
Detto questo, dal momento che non so come impostare una patch, ho aggirato l'ostacolo in modo poco ortodosso, scompattando l'archivio tar.xz dei sorgenti di GDAL 2.2.4 e modificando direttamente la riga specifica del codice del file incriminato. Poi ho ricreato il tar compresso con xz e ho rilanciato lo SlackBuild. È andato a buon fine! Peraltro ho integrato lo SB con la specifica --with-ecw=/usr/local \ per permettere la visualizzazione dei file in formato JPEG 2000 e nel formato proprietario ECW usando libecwj2 3.3, una vecchia libreria del 2006, l'ultima open source, che ancora è disponibile in un repository in rete.
Venendo al dunque, il file sorgente incriminato è pdfobject.cpp presente nell'archivio scompattato nel percorso gdal-2.2.4/frmts/pdf/.
Il sorgente va modificato sostituendo la riga 1058
Codice: Seleziona tutto
GooString* gooString = m_po->getString();Codice: Seleziona tutto
const GooString* gooString = m_po->getString();Questo è quanto, spero di essere stato chiaro.