[RISOLTO] Correzione di un errore nel sorgente di GDAL per rendere possibile l'installazione dallo SB sulla current

Se avete problemi con l'installazione e la configurazione di Slackware64 postate qui. Non usate questo forum per argomenti che trattano la Slackware32 o generali... per quelli usate rispettivamente il forum Slackware e Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware64 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 Slackware64, se l'argomento è Slackware32 o generale usate rispettivamente il forum Slackware o Gnu/Linux in genere.
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.
gian_d
Linux 0.x
Linux 0.x
Messaggi: 38
Iscritto il: mer lug 16, 2014 17:35
Nome Cognome: Giancarlo Dessì
Slackware: 64 current
Kernel: 4.19.xx
Desktop: KDE 4.14.38
Località: Sardinia
Contatta:

[RISOLTO] Correzione di un errore nel sorgente di GDAL per rendere possibile l'installazione dallo SB sulla current

Messaggioda gian_d » lun apr 08, 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

Codice: Seleziona tutto

GooString* gooString = m_po->getString();

con la riga

Codice: Seleziona tutto

const GooString* gooString = m_po->getString();


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.
Ultima modifica di gian_d il mar apr 09, 2019 18:15, modificato 1 volta in totale.

Avatar utente
conraid
Staff
Staff
Messaggi: 13282
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: Correzione di un errore nel sorgente di GDAL per rendere possibile l'installazione dallo SlackBuild sulla current

Messaggioda conraid » mar apr 09, 2019 7:21

Questo lo puoi fare in due modi:
1) con diff.
Metti i sorgenti in due directory diverse (per esempio a e b) e poi fai una cosa tipo

Codice: Seleziona tutto

# diff -Naupr a b > nome.patch

metti il file nome.patch dove c'è lo slackbuild e dentro lo slackbuild poi dai

Codice: Seleziona tutto

patch -p1 -i $CWD/nome.patch

2) con sed
Dentro lo slackbuild prima del configure, o quel che c'è, metti una cosa tipo

Codice: Seleziona tutto

sed '/gooString = m_po->getString/s/^GooString/const GooString/' -i pathfile/nomefile

ma controlla bene che l'ho scritta così di getto

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

Re: Correzione di un errore nel sorgente di GDAL per rendere possibile l'installazione dallo SlackBuild sulla current

Messaggioda ponce » mar apr 09, 2019 9:04

grazie mille della segnalazione, Giancarlo!

cercando un po' nel loro repository git ho trovato la patch che corregge la compatibilita' con la versione di poppler in current (ci sono pure quelle per le versioni superiori ed e' molto probabile che andranno applicate anche quelle presto).

https://github.com/OSGeo/gdal/commit/12 ... 41ea.patch

https://github.com/OSGeo/gdal/commits/m ... object.cpp

gian_d
Linux 0.x
Linux 0.x
Messaggi: 38
Iscritto il: mer lug 16, 2014 17:35
Nome Cognome: Giancarlo Dessì
Slackware: 64 current
Kernel: 4.19.xx
Desktop: KDE 4.14.38
Località: Sardinia
Contatta:

Re: Correzione di un errore nel sorgente di GDAL per rendere possibile l'installazione dallo SlackBuild sulla current

Messaggioda gian_d » mar apr 09, 2019 18:14

@ ponce: sì il codice della patch è proprio quello, solo che io l'avevo trovato in un forum. Comunque l'importate è trovarla per chi si occupa degli aggiornamenti dello slackbuild
@ conraid: grazie per la dritta, mi servirà in futuro nel caso dovessi trovare problemi simili. Per adesso avevo già risolto a modo mio e l'importante è che abbia funzionato

Metto il [risolto] anche se in questo caso si trattava solo di una segnalazione