7,867 bytes added
, 09:10, 10 January 2014
Benvenuti nella pagina Wiki di Simone Giustetti.
Lingue: [http://www.giustetti.net/wiki/index.php?title=En/TDE_tsip4-tqt English] - '''Italiano'''
----
== SIP4-TQT ==
[[trinity_desktop_environment#Pacchetti_Base]]
SIP è uno strumento che semplifica la creazione di collegamenti (binding in inglese) tra il linguaggio Python e librerie scritte in linguaggio C o C++. Originariamente scritto per creare '''PyQt''', i binding di Python alle librerie QT, '''SIP può essere utilizzato per qualsiasi libreria in C o C++'''. Slackware annovera un pacchetto ufficiale per SIP, che '''non è purtroppo compatibile con il substrato TQT''' necessario al funzionamento del '''Trinity Desktop Environment'''. Tutti i pacchetti di TDE relativi a Python necessitano SIP per compilare e funzionare una volta installati. Ne consegue sia necessario compilarne una versione dedicata a TQT andando a sostituire quella inclusa nella distribuzione.
=== Sip4-tqt su Slackware ===
Il codice sorgente della versione personalizzata di SIP: '''sip4-tqt''', non viene rilasciato sotto forma di pacchetto tgz assieme al resto dell'ambiente desktop. Il codice è reperibile solamente dal [http://git.trinitydesktop.org repository GIT] del progetto; per scaricarlo esistono due modi:
* Collegarsi al repository attraverso un web browser e scaricare un archivio compresso contenente il codice sorgente dell'ultima versione disponibile dal ramo ''master''. [http://git.trinitydesktop.org/cgit/sip4-tqt/snapshot/sip4-tqt-master.tar.gz sip4-tqt-master.tar.gz]
* Installando GIT sulla propria macchina ed utilizzando la seguente procedura:
:# Spostarsi nella directory ove si vogliono scaricare i file
:# Lanciare il comando: '''git''' ''clone'' http://anonymous@scm.trinitydesktop.org/scm/git/sip4-tqt
:# Rinominare la directory principale dei file scaricati: '''mv''' sip4-tqt sip4-tqt-master (Operazione necessaria esclusivamente per mantenere la nomenclatura dell'archivio scaricato con il metodo precedente)
:# Creare un archivio del codice sorgente: '''tar''' ''-zcf'' sip4-tqt-master.tar.gz sip4-tqt-master
Quale che sia il metodo usato, il risultato sarà il file sip4-tqt-master.tar.gz utilizzabile per compilare un pacchetto come vedremo nel proseguo dell'articolo.
Trattandosi di un pacchetto ufficiale esiste uno script di compilazione che puè essere utilizzato come riferimento per le operazioni di pacchettizzazione. Il pacchetto generato dovrà andare a sostituire quello standard perciò non sarà possibile utilizzare '''/opt/trinity''' come directory root, ma ricorrere a '''/usr''': la directory predefinita del pacchetto ufficiale. Il codice sorgente '''non usa gli autotools, nè [http://www.cmake.org/ cmake] per la configurazione''', solo uno script Python: '''configure.py''', che potrà essere lanciato mediante il comando: '''python''' configure.py <opzioni> . Eseguita la configurazione si dovrà lanciare immediatamente il comando '''make''' quindi '''make''' ''install''.
I primi tentativi di compilare SIP si sono rivalati infruttuosi: la compilazione falliva rendendo errori nella ricerca di alcuni file include. Spulciando la documentazione ufficiale è emersa la necessità di aggiungere alcuni percorsi di inclusione al comando di configurazione. Tale accorgimento ha risolto uno dei tre errori resi dal comando make. Per i rimanenti due è stato necessario aggiungere alcuni collegamenti tra directory. Ricapitolando:
Si lanci il comando:
'''export''' SLKCFLAGS="-O2 -march=i486 -mtune=i686 '''-I/usr/include/tqt'''"
'''export''' PYTHONVER=$(python -V 2>&1 | cut -f 2 -d' ' | cut -f 1-2 -d.)
'''export''' PYTHONLIB=$( python -c 'from distutils.sysconfig import get_python_lib; print get_python_lib()' )
'''python''' configure.py \
-b "/usr/bin" \
-d "$PYTHONLIB" \
-e "/usr/include/python$PYTHONVER" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS"
per eseguire la configurazione su una architettura a 32 bit.
Passare l'opzione '''-I/usr/include/tqt''' allo script di configurazione si è rivelato fondamentale per risolvere il seguente errore:
bash-4.2# '''make'''
make[1]: Entering directory `/usr/src/tde/3.5.13.2/sip4-tqt/sip4-tqt-3.5.13.2/sipgen'
gcc -c -O2 -march=i486 -mtune=i686 -O2 -w -DNDEBUG -I. -o main.o main.c
In file included from main.c:26:0:
sip.h:26:17: fatal error: '''tqt.h: No such file or directory'''
compilation terminated.
make[1]: *** [main.o] Error 1
make[1]: Leaving directory `/usr/src/tde/3.5.13.2/sip4-tqt/sip4-tqt-3.5.13.2/sipgen'
make: *** [all] Error 2
Creare il link:
'''ln''' ''-s'' /usr/include/tqt /usr/include/tqt4
Risolve un altro errore di compilazione:
bash-4.2# '''make'''
make[1]: Entering directory `/usr/src/tde/3.5.13.2/sip4-tqt/sip4-tqt-3.5.13.2/sipgen'
gcc -c -O2 -march=i486 -mtune=i686 -I/usr/include/tqt -O2 -w -DNDEBUG -I. -o main.o main.c
In file included from sip.h:26:0,
from main.c:26:
/usr/include/tqt/tqt.h:51:21: fatal error: '''qglobal.h: No such file or directory'''
compilation terminated.
make[1]: *** [main.o] Error 1
make[1]: Leaving directory `/usr/src/tde/3.5.13.2/sip4-tqt/sip4-tqt-3.5.13.2/sipgen'
make: *** [all] Error 2
È stato infine necessario creare il link:
'''ln''' ''-s'' /opt/trinity/include /usr/include/tqt/QtCore
Per risolvere l'errore:
bash-4.2# '''make'''
make[1]: Entering directory `/usr/src/tde/3.5.13.2/sip4-tqt/sip4-tqt-3.5.13.2/sipgen'
gcc -c -O2 -march=i486 -mtune=i686 -I/usr/include/tqt -O2 -w -DNDEBUG -I. -o main.o main.c
In file included from /usr/include/tqt/tqt.h:51:0,
from sip.h:26,
from main.c:26:
/usr/include/tqt/qglobal.h:62:28: fatal error: '''QtCore/qconfig.h: No such file or directory'''
compilation terminated.
make[1]: *** [main.o] Error 1
make[1]: Leaving directory `/usr/src/tde/3.5.13.2/sip4-tqt/sip4-tqt-3.5.13.2/sipgen'
make: *** [all] Error 2
L'aggiunta di opzioni di inclusione alo script '''configure.py''' da sola non si è rivelata sufficiente a risolvere tutti i problemi illustrati.
Uno script SlackBuild che includa tutte le istruzioni e gli accorgimenti descritti può essere scaricato al seguente [[http://www.giustetti.net/resource/slackbuild/tde/35132/sip4-tqt.tar.gz link]]. Per distinguere il pacchetto modificato da quello ufficiale, lo script aggiunge il suffisso ''tde'' al nome.
Una volta ultimata la preparazione del pacchetto '''sip-tde''', prima di installarlo è necessario rimuovere quello predefinito mediante l'istruzione:
'''removepkg''' sip-4.13.2-i486-2
e lanciare quindi il comando
'''installpkg''' sip-tde-i486-1sg.txz
In alternativa è possibile sostituire entrambe le istruzioni con un singolo comando upgradepkg:
'''upgradepkg''' sip-4.13.2-i486-2'''%'''sip-tde-i486-1sg.txz
Dopo aver installato sip-tqt sarà possibile procedere con la compilazione dei pacchetti Python per TDE.
Per commenti, consigli, domande inviate una e-mail all'indirizzo ''studiosg [chiocciola] giustetti [punto] net''.
Link esterni
----
* [http://www.trinitydesktop.org/wiki/bin/view/Developers/HowToBuild Istruzioni per compilare TDE]
* [http://www.riverbankcomputing.co.uk/software/sip/ Home page di SIP (in Inglese)]
* [https://wiki.python.org/moin/PyQt Il wiki dedicato a PyQt (in Inglese)]
* [http://en.wikipedia.org/wiki/PyQt La pagina di Wikipedia dedicata a PyQt (in Inglese)]
* [http://www.python.it/wiki/show/qttutorial/ Tutorial relativi a PyQt]
* [http://it.wikipedia.org/wiki/Git_%28software%29 La pagina di Wikipedia dedicata a GIT]
* [http://git-scm.com/ La home page di GIT]
----
Lingue: [http://www.giustetti.net/wiki/index.php?title=En/TDE_tsip4-tqt English] - '''Italiano'''