Changes

Aggiunto pagina dedicata al supporto Python per TDE 14.0.0
Benvenuti nella pagina Wiki di Simone Giustetti.


Lingue: [http://www.giustetti.net/wiki/index.php?title=TDE_14.0.0_python_support English] - '''Italiano'''

----

== '''Supporto al Linguaggio Python''' ==
[[trinity_desktop_environment_14.0.0]]

Il '''Trinity Desktop Environment''' viene distribuito con a corredo molte utili applicazioni. Non essendo possibile soddisfare tutte le necessità dell'utenza viene inoltre distribuito un '''S'''oftware '''D'''evelopment '''K'''it per sviluppare nuovi programmi che si integrino facilmente nell'ambiente desktop. TDE è sviluppato in linguaggio '''C++''', che risulta pertanto essere il linguaggio preferenziale per lo sviluppo di nuovi programmi ed integrazioni a quelli esistenti. Per venire incontro alle necessità di tutti gli sviluppatori sono distribuite librerie di collegamento per una moltitudine di linguaggi di programmazione diversi da C++. Tra questi veste un ruolo di primaria importanza '''Python''' un linguaggio interpretato ricco di funzionalità e librerie di espansione. Per abilitare il supporto al linguaggio Python in TDE è necessario installare alcuni pacchetti prima di compilare '''tdebindings'''. L'elenco dei pacchetti comprende: '''pytdeextensions''', '''python-tqt''', '''python-trinity''' e infine '''tqscintilla'''. Nel proseguo dell'articolo si illustrerà la procedura di compilazione per generare pacchetti funzionanti per '''Slackware Linux 14.1'''.

=== Sistema di Compilazione ===

I pacchetti correlati al linguaggio Python sono distribuiti in due dei raggruppamenti principali dei pacchetti TDE: Librerie e Prerequisiti. I pacchetti sono opzionali ed è possibile ometterne l'installazione rinunciando alla possibilitè di scrivere in Python applicazioni integrate nell'ambiente. Data la natura particolare tutti i pacchetti richiedono un sistema di compilazione '''diverso da Cmake o Autotools'''. Segue l'elenco dei pacchetti ed il sistema di compilazione adottato per ciascuno di essi:

{| style="width: 80%;"
|+ '''SISTEMA DI COMPILAZIONE'''
! Pacchetto !! Famiglia del Pacchetto !! Sistema
|- style="text-align: center;"
| pytdeextensions || Librerie || Script configure.py <br/> Richiede un interprete Python
|- style="text-align: center;"
| python-tqt || Prerequisiti || Script configure.py <br/> Richiede un interprete Python
|- style="text-align: center;"
| python-trinity || Librerie || Script configure.py <br/> Richiede un interprete Python
|- style="text-align: center;"
| tqscintilla || Prerequisiti || Script qscintilla.pro per qmake <br/> Richiede che siano installate le librerie TQt3
|}

Per una discussione generale circa la struttura di uno script SlackBuild si rimanda alla pagina [[TDE_14.0.0_prerequisiti#Struttura_di_uno_Script]] mentre per una trattazione incentrata sulle opzioni generiche di compilazione si rimanda alla pagina [[TDE_14.0.0_prerequisiti#Opzioni_Generali]] in cui analoghe considerazioni venivano esposte per i pacchetti appartenenti alla famiglia '''Prerequisiti'''. Di seguito verranno trattate le opzioni specifiche utilizzate per compilare i singoli pacchetti e verranno forniti collegamenti agli script SlackBuild completi.

=== Opzioni Specifiche ===

Si rammenta di compilare ed installare i pacchetti nell'ordine riportato nella pagina [[Trinity_desktop_environment_14.0.0#Ordine_di_compilazione]] in caso contrario la procedura di compilazione potrebbe fallire non trovando le necessarie librerie. Nel proseguo dell'articolo i pacchetti verranno trattati in ordine alfabetico.

==== PYTDEEXTENSIONS ====

La libreria '''Pytdeextensions''' contiene una moltitudine di classi e metodi scritti in Python, che possono essere utilizzati dagli sviluppatori per scrivere le proprie applicazioni integrate in TDE. Per compilare il pacchetto &egrave; necessario definire alcune variabili di ambiente:
PREFIX=${PREFIX:-"/usr"}
MANDIR=${MANDIR:-"${PREFIX}/man"}
Quindi lanciare lo script setup.py con l'opzione '''install''':
# Configure, build and install the package
'''python''' ./setup.py install ''--verbose --root=''${PKG}
Lo script eseguir&agrave; automaticamente tutti i passi necessari a compilare ed installare il pacchetto. Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/pytdeextensions.tar.gz indirizzo].

==== PYTHON-TQT ====

La libreria '''Python-tqt''' contiene i collegamenti delle librerie '''TQt''' al linguaggio Python. Senza non sar&agrave; possibile sviluppare applicazioni per TDE. Per funzionare, python-tqt necessita che sia installato '''Sip''': il generatore di collegamenti per Python a librerie scritte in C o C++. Per compilare un pacchetto funzionante bisogna dichiarare alcune variabili di ambiente:
PREFIX=${PREFIX:-"/usr/local"}
MANDIR=${MANDIR:-"/usr/man"}
Aggiungere alcuni percorsi che puntino a file include siti nel percorso di installazione di TDE:
SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I${PREFIX_TDE}/include"
Altrimenti la procedura fallir&agrave; rendendo errore. Configurare il codice sorgente invocando lo script '''configure.py''':
echo "yes" | \
'''python''' configure.py \
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}"
E infine lanciare la compilazione mediante il comando '''make'''.

Per facilitare gli sviluppatori alcuni esempi di codice verranno aggiunti alla directory contenente la documentazione:
# Add some examples to the documentation directory
'''mkdir''' ''-p'' ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/examples2"
'''cp''' ''-aR'' ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/examples2/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/examples2"
'''mkdir''' ''-p'' ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/examples3"
'''cp''' ''-aR'' ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/examples3/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/examples3"

Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/python-tqt.tar.gz indirizzo].

==== PYTHON-TRINITY ====

La libreria '''Python-trinity''' contiene ulteriori collegamenti delle librerie '''TQt''' al linguaggio Python. Anche in questo caso per compilare il pacchetto sar&agrave; necessario impostare alcune variabili di ambiente e altre variabili relative alla configurazione di Python:
'''export''' TDE_PREFIX=${PREFIX}
'''export''' TDE_INCLUDEDIR="${TDE_PREFIX}/include"
'''export''' TDE_LIBDIR="${TDE_PREFIX}/lib${LIBDIRSUFFIX}"
'''export''' PYTHON_VER=$('''python''' ''-V'' 2>&1 | '''cut''' ''-f'' 2 ''-d''<nowiki>' '</nowiki> | '''cut''' ''-f'' 1-2 ''-d''.)
'''export''' PYTHON_LIB=$( '''python''' ''-c'' 'from distutils.sysconfig import get_python_lib; print get_python_lib()' )
'''export''' PYTHON_INCLUDE="/usr/include/python${PYTHON_VER}"
Quindi configurare il codice sorgente mediante lo script '''configure.py''':
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
'''python''' ./configure.py \
''-d'' "${PYTHON_LIB}" \
''-k'' "${TDE_PREFIX}" \
''-L'' "${PYTHON_INCLUDE}" \
''-n'' "${TDE_LIBDIR}" \
''-o'' "${TDE_INCLUDEDIR}"
E infine lanciare la procedura di compilazione mediante il comando '''make'''.

Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/python-trinity.tar.gz indirizzo].

==== TQSCINTILLA ====

'''TQScintilla''' &egrave; una conversione di '''Scintilla''' alle librerie '''TQt'''. '''TQScintilla''' fornisce molte funzionalit&agrave; di manipolazione di testo particolarmente indicate per scrivere codice sorgente o eseguirne il debug. Unico dei pacchetti fin qui trattati ad utilizzare '''tqmake''', per compilare un pacchetto per Slackware 14.1 &egrave; necessario impostare alcune variabili d'ambiente:
PREFIX=${PREFIX:-"/usr/local"}
MANDIR=${MANDIR:-"/usr/man"}
Aggiungere alcuni percorsi che puntino a file include siti nel percorso di installazione di TDE:
SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I${PREFIX_TDE}/include"
Per evitare che la procedura di compilazione fallisca rendendo un errore. &Egrave; necessario poi applicare una patch, che corregge un problema con la variabile '''DESTDIR''' sostituendola con '''INSTALL_ROOT''':
'''patch''' ''-p0 -i'' ${SRCDIR}/qscintilla.patch
Una volta configurato il codice sorgente mediante '''tqmake''' e lo script '''qscintilla.pro''':
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS} ''-fno-exceptions''" \
'''tqmake''' qscintilla.pro
Si potr&agrave; procedere con la compilazione mediante '''make''':
'''make''' VERBOSE=1 2>&1
'''make''' install INSTALL_ROOT=${PKG}
Infine, come per il pacchetto python-tqt, si installer&agrave; alcuni file di documentazione dedicati agli sviluppatori e alcuni esempi di codice:
# Add HTML and SGML files to the documentation directory
'''mkdir''' ''-p'' ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/html"
'''cp''' ''-a'' ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/doc/html/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/html"
'''mkdir''' ''-p'' ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/Scintilla"
'''cp''' ''-a'' ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/doc/Scintilla/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/Scintilla"
# Add some examples to the documentation directory
'''mkdir''' ''-p'' ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/example"
'''cp''' ''-aR'' ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/example/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/example"

Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/tqscintilla.tar.gz indirizzo].

Tutti i pacchetti fin qui trattati potranno essere installati mediante il comando '''installpkg''' standard in ogni distribuzione Slackware.

=== Conclusioni ===

Nel corso del presente articolo ci si &egrave; occupati di discutere le procedure di compilazione per i pacchetti necessari ad estendere il supporto al linguaggio '''Python''' per il '''Trinity Desktop Environment'''. Per ognuno dei pacchetti sono state illustrate le opzioni principali di configurazione ed &egrave; stato fornito un link allo script '''SlackBuild''' prodotto durante la stesura dell'articolo. Gli script sono distribuiti nella speranza che possano essere utili a quegli utenti di '''Slackware Linux''' che volessero cimentarsi nell'impresa di compilare da zero l'intero ambiente desktop.


Per commenti, consigli, domande inviate una e-mail all'indirizzo ''studiosg [chiocciola] giustetti [punto] net''.

python
Link esterni
----

* [http://www.trinitydesktop.org/ Home page del progetto TDE (En)]
* [http://www.slackware.com/ Home page di Slackware (En)]
* [http://www.python.it Python - Sito Ufficiale]

----

Lingue: [http://www.giustetti.net/wiki/index.php?title=TDE_14.0.0_python_support English] - '''Italiano'''