Ennesimo problema PyQt5 - sip

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: 88
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:

Ennesimo problema PyQt5 - sip

Messaggioda gian_d » lun ott 14, 2019 21:33

Sto provando a installare Qgis 3.8.1 / 3.8.2 in un nuovo sistema (sostituzione degli hardisk e reinstallazione di una nuova current) e alla fine mi ritrovo sempre con lo stesso errore di compilazione causato da sip. Notare che in una precedente configurazione risalente ad una current di pochi mesi fa l'installazione di Qgis 3.8.1 era stata fatta con successo.
L'unico aggiornamento significativo consisteva in un upgrade di Qt5 dalla 5.9.6 alla 5.9.8. Che comunque non mi ha dato problemi con tutte le installazioni che lo richiedono come dipendenza.
L'installazione di Qgis 3.8.1 ricompilato dalla precedente configurazione non funziona: il programma si avvia ma senza alcun supporto a Python a causa di un conflitto sip/Qt5: sip non trova un qualche modulo in QtCore.

Alla fine ho deciso di resettare le installazioni delle dipendenze coinvolte (PyQt5, python3-Qt5, QScintilla, python2-sip) e ricominciare da capo ricompilando tutti questi pacchetti. Iniziando da PyQt5. E qui salta fuori un problema. Non ricordo se ricorreva anche nei precedenti tentativi e se avevo aggirato installando il pacchetto precompilato che avevo installato nella precedente configurazione. Le installazioni di python3-Qt5 e QScintilla invece non avevano dato problemi. Comunque, con la ricompilazione di PyQt5 in vari contesti salta fuori sempre un errore causato da python. Posto il codice alla fine perché l'errore ricorre con tutti i tentativi che ho fatto.

Primo tentativo usando lo slackbuild del repository di Ponce (PyQt5 versione 5.9.2) con le dipendenze richieste (enum34, python2-sip e qt5webkit). Provato poi con la compilazione di PyQt5 versione 5.11.3 ma non cambia nulla, stesso errore.

Secondo tentativo: scopro che lo slackbuild di python2-sip del repository compila i sorgenti di sip-5.19.6 ma nel sistema è installato anche il pacchetto sip-5.19.19 rilasciato da Slackware. Ho pensato ad un qualche conflitto tra queste due versioni perciò ho ricompilato python2-sip usando i sorgenti di sip-5.19.19 (scaricati da riverbankcomputing) e poi riprovato con la compilazione di PyQt5 (entrambe le versioni, 5.9.2 e 5.11.3). Nulla da fare, sempre lo stesso errore.

Ulteriori tentativi: invece di usare python2 ho provato impostando lo slackbuild per usare python3. Niente da fare.

Ultimo tentativo: ho rimosso le installazioni di python2-sip e python3-sip e ho provato ad usare i file del pacchetto di sip della slackware. In sostanza ho modificato lo slackbuild nei settaggi da passare a configure.py in modo da usare l'eseguibile sip e gli header dai file installati dal pacchetto della Slackware:
--sip=/usr/bin/sip2 \
--sip-incdir="/usr/include/python2.7" \

Niente da fare, l'errore è sempre lo stesso. Questo è il codice dell'ultimo tentativo di compilazione:

Codice: Seleziona tutto

SIP 4.19.19 is being used.
The sip executable is /usr/bin/sip2.
These PyQt5 modules will be built: QtCore, QtGui, QtHelp, QtMultimedia,
QtMultimediaWidgets, QtNetwork, QtOpenGL, QtPrintSupport, QtQml, QtQuick,
QtSql, QtSvg, QtTest, QtWebKit, QtWebKitWidgets, QtWidgets, QtXml,
QtXmlPatterns, QtDesigner, QtDBus, _QOpenGLFunctions_2_0,
_QOpenGLFunctions_2_1, _QOpenGLFunctions_4_1_Core, QtSensors, QtSerialPort,
QtX11Extras, QtBluetooth, QtPositioning, QtQuickWidgets, QtWebSockets,
QtWebChannel, QtWebEngineWidgets, QtLocation, QtNfc, QtWebEngineCore,
QtWebEngine.
The PyQt5 Python package will be installed in
/usr/lib64/python2.7/site-packages.
PyQt5 is being built with generated docstrings.
PyQt5 is being built with 'protected' redefined as 'public'.
The Designer plugin will be installed in /usr/lib64/qt5/plugins/designer.
The qmlscene plugin will be installed in /usr/lib64/qt5/plugins/PyQt5.
The dbus support module will be installed in
/usr/lib64/python2.7/site-packages/dbus/mainloop.
The PyQt5 .sip files will be installed in /usr/share/sip/PyQt5.
pyuic5, pyrcc5 and pylupdate5 will be installed in /usr/bin.
The interpreter used by pyuic5 is /usr/bin/python.
Generating the C++ source for the QtCore module...
/usr/bin/sip2 -w -x VendorID -t WS_X11 -t Qt_5_9_8 -x Py_v3 -f -B Qt_6_0_0 -P -o -c /tmp/SBo/PyQt5_gpl-5.9.2/QtCore -I sip -I /tmp/SBo/PyQt5_gpl-5.9.2/sip /tmp/SBo/PyQt5_gpl-5.9.2/sip/QtCore/QtCoremod.sip
sip: Deprecation warning: the -B flag is deprecated
Error: Unable to create the C++ code.


In sostanza, tutti i tentativi (a prescindere dai sorgenti impiegati e dalle dipendenze impiegate) si fermano alla fase Generating the C++ source for the QtCore module...
1) i parametri passati a sip2 (o nei precedenti tentativi a python2-sip e a python3-sip) sono gli stessi
2) compare il messaggio sip: Deprecation warning: the -B flag is deprecated
3) compare il messaggio Error: Unable to create the C++ code che non so se ha a che fare con quel warning

Un'altra cosa che mi lascia perplesso è che nel sistema precedente non ricordo di aver installato python2-sip, ma l'installazione di PyQt5 era andata regolarmente. Purtroppo non sono sicuro di questo perché non ho più il contenuto di /var/lib/scripts della vecchia current: ho una copia della installazione della precedente current, ma la directory /var/lib è stata sovrascritta dalla nuova installazione perché da anni nelle mie configurazioni uso quella directory in una partizione dedicata per mantenere dei database MySQL ad ogni upgrade. Purtroppo non ho neppure un backup aggiornato degli ultimi mesi perché ero un po' incasinato con gli spazi sui dischi.

Qualche suggerimento?