TDE 14.0.0 supporto python

From Studiosg
Jump to: navigation, search

Benvenuti nella pagina Wiki di Simone Giustetti.


Lingue: 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 Software Development Kit 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:

SISTEMA DI COMPILAZIONE
Pacchetto Famiglia del Pacchetto Sistema
pytdeextensions Librerie Script configure.py
Richiede un interprete Python
python-tqt Prerequisiti Script configure.py
Richiede un interprete Python
python-trinity Librerie Script configure.py
Richiede un interprete Python
tqscintilla Prerequisiti Script qscintilla.pro per qmake
Richiede che siano installate le librerie TQt3

Per una discussione generale circa la struttura di uno script SlackBuild si rimanda alla pagina Struttura di uno Script mentre per una trattazione incentrata sulle opzioni generiche di compilazione si rimanda alla pagina 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 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 è 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à automaticamente tutti i passi necessari a compilare ed installare il pacchetto. Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.

PYTHON-TQT

La libreria Python-tqt contiene i collegamenti delle librerie TQt al linguaggio Python. Senza non sarà 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à 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ò essere scaricato dal seguente 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à 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' ' | 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ò essere scaricato dal seguente indirizzo.

TQSCINTILLA

TQScintilla è una conversione di Scintilla alle librerie TQt. TQScintilla fornisce molte funzionalità 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 è 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. È 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à 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à 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ò essere scaricato dal seguente 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 è 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 è 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.


Link esterni





Lingue: English - Italiano