Changes

From Studiosg
Jump to navigationJump to search
7,867 bytes added ,  09:10, 10 January 2014
Aggiunto pagina dedicata a Sip4-tqt, Trinity Desktop Environment e Slackware 14.0
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&egrave; essere utilizzato come riferimento per le operazioni di pacchettizzazione. Il pacchetto generato dovr&agrave; andare a sostituire quello standard perci&ograve; non sar&agrave; 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&egrave; [http://www.cmake.org/ cmake] per la configurazione''', solo uno script Python: '''configure.py''', che potr&agrave; essere lanciato mediante il comando: '''python''' configure.py <opzioni> . Eseguita la configurazione si dovr&agrave; 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 &egrave; emersa la necessit&agrave; 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 &egrave; 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 &egrave; 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

&Egrave; 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 &egrave; rivelata sufficiente a risolvere tutti i problemi illustrati.

Uno script SlackBuild che includa tutte le istruzioni e gli accorgimenti descritti pu&ograve; 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 &egrave; 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 &egrave; 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&agrave; 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'''

Navigation menu