Line 1: |
Line 1: |
− | Benvenuti nella pagina Wiki di Simone Giustetti.
| + | {{header_it|title=Compilazione del supporto Python per TDE| keyword={{Template:keyword_it_tde}}| description=Compilare pacchetti funzionanti per supportare Python in Trinity Desktop Environment su Slackware Linux | link_page=TDE_14.0.0_python_support}} |
− | | |
− | | |
− | Lingue: [http://www.giustetti.net/wiki/index.php?title=TDE_14.0.0_python_support English] - '''Italiano'''
| |
− | | |
− | ----
| |
| | | |
| == '''Supporto al Linguaggio Python''' == | | == '''Supporto al Linguaggio Python''' == |
− | [[trinity_desktop_environment_14.0.0]] | + | [[trinity_desktop_environment_14.0.0 | 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'''. | | 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'''. |
Line 28: |
Line 23: |
| |} | | |} |
| | | |
− | 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. | + | Per una discussione generale circa la struttura di uno script SlackBuild si rimanda alla pagina [[TDE_14.0.0_prerequisiti#Struttura_di_uno_Script |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 |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 === | | === 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. | + | Si rammenta di compilare ed installare i pacchetti nell'ordine riportato nella pagina [[Trinity_desktop_environment_14.0.0#Ordine_di_compilazione |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 ==== | | ==== 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: | | 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: |
| + | <syntaxhighlight lang="bash"> |
| PREFIX=${PREFIX:-"/usr"} | | PREFIX=${PREFIX:-"/usr"} |
− | MANDIR=${MANDIR:-"${PREFIX}/man"} | + | MANDIR=${MANDIR:-${PREFIX}/man} |
| + | </syntaxhighlight> |
| Quindi lanciare lo script setup.py con l'opzione '''install''': | | Quindi lanciare lo script setup.py con l'opzione '''install''': |
| + | <syntaxhighlight lang="bash"> |
| # Configure, build and install the package | | # Configure, build and install the package |
− | '''python''' ./setup.py install ''--verbose --root=''${PKG} | + | python ./setup.py install --verbose --root=${PKG} |
| + | </syntaxhighlight> |
| 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 [http://www.giustetti.net/resource/slackbuild/tde/1400/pytdeextensions.tar.gz indirizzo]. | | 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 [http://www.giustetti.net/resource/slackbuild/tde/1400/pytdeextensions.tar.gz indirizzo]. |
| | | |
Line 47: |
Line 46: |
| | | |
| 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: | | 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: |
| + | <syntaxhighlight lang="bash"> |
| PREFIX=${PREFIX:-"/usr/local"} | | PREFIX=${PREFIX:-"/usr/local"} |
| MANDIR=${MANDIR:-"/usr/man"} | | MANDIR=${MANDIR:-"/usr/man"} |
| + | </syntaxhighlight> |
| Aggiungere alcuni percorsi che puntino a file include siti nel percorso di installazione di TDE: | | Aggiungere alcuni percorsi che puntino a file include siti nel percorso di installazione di TDE: |
| + | <syntaxhighlight lang="bash"> |
| SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I${PREFIX_TDE}/include" | | SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I${PREFIX_TDE}/include" |
| + | </syntaxhighlight> |
| Altrimenti la procedura fallirà rendendo errore. Configurare il codice sorgente invocando lo script '''configure.py''': | | Altrimenti la procedura fallirà rendendo errore. Configurare il codice sorgente invocando lo script '''configure.py''': |
| + | <syntaxhighlight lang="bash"> |
| echo "yes" | \ | | echo "yes" | \ |
− | '''python''' configure.py \ | + | python configure.py \ |
| CFLAGS="${SLKCFLAGS}" \ | | CFLAGS="${SLKCFLAGS}" \ |
| CXXFLAGS="${SLKCFLAGS}" | | CXXFLAGS="${SLKCFLAGS}" |
| + | </syntaxhighlight> |
| E infine lanciare la compilazione mediante il comando '''make'''. | | E infine lanciare la compilazione mediante il comando '''make'''. |
| | | |
| Per facilitare gli sviluppatori alcuni esempi di codice verranno aggiunti alla directory contenente la documentazione: | | Per facilitare gli sviluppatori alcuni esempi di codice verranno aggiunti alla directory contenente la documentazione: |
| + | <syntaxhighlight lang="bash"> |
| # Add some examples to the documentation directory | | # Add some examples to the documentation directory |
− | '''mkdir''' ''-p'' ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/examples2" | + | mkdir -p ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/examples2" |
− | '''cp''' ''-aR'' ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/examples2/* ${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" | + | mkdir -p ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/examples3" |
− | '''cp''' ''-aR'' ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/examples3/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/examples3" | + | cp -aR ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/examples3/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/examples3" |
| + | </syntaxhighlight> |
| | | |
| Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/python-tqt.tar.gz indirizzo]. | | Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/python-tqt.tar.gz indirizzo]. |
Line 70: |
Line 77: |
| | | |
| 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: | | 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} | + | <syntaxhighlight lang="bash"> |
− | '''export''' TDE_INCLUDEDIR="${TDE_PREFIX}/include" | + | export TDE_PREFIX=${PREFIX} |
− | '''export''' TDE_LIBDIR="${TDE_PREFIX}/lib${LIBDIRSUFFIX}" | + | export TDE_INCLUDEDIR="${TDE_PREFIX}/include" |
− | '''export''' PYTHON_VER=$('''python''' ''-V'' 2>&1 | '''cut''' ''-f'' 2 ''-d''<nowiki>' '</nowiki> | '''cut''' ''-f'' 1-2 ''-d''.) | + | export TDE_LIBDIR="${TDE_PREFIX}/lib${LIBDIRSUFFIX}" |
− | '''export''' PYTHON_LIB=$( '''python''' ''-c'' 'from distutils.sysconfig import get_python_lib; print get_python_lib()' ) | + | export PYTHON_VER=$( python -V 2>&1 | cut -f 2 -d' ' | cut -f 1-2 -d.) |
− | '''export''' PYTHON_INCLUDE="/usr/include/python${PYTHON_VER}" | + | export PYTHON_LIB=$( python -c 'from distutils.sysconfig import get_python_lib; print get_python_lib()' ) |
| + | export PYTHON_INCLUDE="/usr/include/python${PYTHON_VER}" |
| + | </syntaxhighlight> |
| Quindi configurare il codice sorgente mediante lo script '''configure.py''': | | Quindi configurare il codice sorgente mediante lo script '''configure.py''': |
| + | <syntaxhighlight lang="bash"> |
| CFLAGS="${SLKCFLAGS}" \ | | CFLAGS="${SLKCFLAGS}" \ |
| CXXFLAGS="${SLKCFLAGS}" \ | | CXXFLAGS="${SLKCFLAGS}" \ |
− | '''python''' ./configure.py \ | + | python ./configure.py \ |
− | ''-d'' "${PYTHON_LIB}" \ | + | -d "${PYTHON_LIB}" \ |
− | ''-k'' "${TDE_PREFIX}" \ | + | -k "${TDE_PREFIX}" \ |
− | ''-L'' "${PYTHON_INCLUDE}" \ | + | -L "${PYTHON_INCLUDE}" \ |
− | ''-n'' "${TDE_LIBDIR}" \ | + | -n "${TDE_LIBDIR}" \ |
− | ''-o'' "${TDE_INCLUDEDIR}" | + | -o "${TDE_INCLUDEDIR}" |
| + | </syntaxhighlight> |
| E infine lanciare la procedura di compilazione mediante il comando '''make'''. | | E infine lanciare la procedura di compilazione mediante il comando '''make'''. |
| | | |
Line 92: |
Line 103: |
| | | |
| '''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: | | '''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: |
| + | <syntaxhighlight lang="bash"> |
| PREFIX=${PREFIX:-"/usr/local"} | | PREFIX=${PREFIX:-"/usr/local"} |
| MANDIR=${MANDIR:-"/usr/man"} | | MANDIR=${MANDIR:-"/usr/man"} |
| + | </syntaxhighlight> |
| Aggiungere alcuni percorsi che puntino a file include siti nel percorso di installazione di TDE: | | Aggiungere alcuni percorsi che puntino a file include siti nel percorso di installazione di TDE: |
| + | <syntaxhighlight lang="bash"> |
| SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I${PREFIX_TDE}/include" | | SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I${PREFIX_TDE}/include" |
| + | </syntaxhighlight> |
| 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''': | | 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 | + | <syntaxhighlight lang="bash"> |
| + | patch -p0 -i ${SRCDIR}/qscintilla.patch |
| + | </syntaxhighlight> |
| Una volta configurato il codice sorgente mediante '''tqmake''' e lo script '''qscintilla.pro''': | | Una volta configurato il codice sorgente mediante '''tqmake''' e lo script '''qscintilla.pro''': |
| + | <syntaxhighlight lang="bash"> |
| CFLAGS="${SLKCFLAGS}" \ | | CFLAGS="${SLKCFLAGS}" \ |
− | CXXFLAGS="${SLKCFLAGS} ''-fno-exceptions''" \ | + | CXXFLAGS="${SLKCFLAGS} -fno-exceptions" \ |
− | '''tqmake''' qscintilla.pro | + | tqmake qscintilla.pro |
| + | </syntaxhighlight> |
| Si potrà procedere con la compilazione mediante '''make''': | | Si potrà procedere con la compilazione mediante '''make''': |
− | '''make''' VERBOSE=1 2>&1 | + | <syntaxhighlight lang="bash"> |
− | '''make''' install INSTALL_ROOT=${PKG} | + | make VERBOSE=1 2>&1 |
| + | make install INSTALL_ROOT=${PKG} |
| + | </syntaxhighlight> |
| Infine, come per il pacchetto python-tqt, si installerà alcuni file di documentazione dedicati agli sviluppatori e alcuni esempi di codice: | | Infine, come per il pacchetto python-tqt, si installerà alcuni file di documentazione dedicati agli sviluppatori e alcuni esempi di codice: |
| + | <syntaxhighlight lang="bash"> |
| # Add HTML and SGML files to the documentation directory | | # Add HTML and SGML files to the documentation directory |
− | '''mkdir''' ''-p'' ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/html" | + | mkdir -p ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/html" |
− | '''cp''' ''-a'' ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/doc/html/* ${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" | + | mkdir -p ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/Scintilla" |
− | '''cp''' ''-a'' ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/doc/Scintilla/* ${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 | | # Add some examples to the documentation directory |
− | '''mkdir''' ''-p'' ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/example" | + | mkdir -p ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/example" |
− | '''cp''' ''-aR'' ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/example/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/example" | + | cp -aR ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/example/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/example" |
| + | </syntaxhighlight> |
| | | |
| Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/tqscintilla.tar.gz indirizzo]. | | Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/tqscintilla.tar.gz indirizzo]. |
Line 126: |
Line 149: |
| Per commenti, consigli, domande inviate una e-mail all'indirizzo ''studiosg [chiocciola] giustetti [punto] net''. | | Per commenti, consigli, domande inviate una e-mail all'indirizzo ''studiosg [chiocciola] giustetti [punto] net''. |
| | | |
− | python
| + | |
| Link esterni | | Link esterni |
| + | |
| ---- | | ---- |
| | | |
| * [http://www.trinitydesktop.org/ Home page del progetto TDE (En)] | | * [http://www.trinitydesktop.org/ Home page del progetto TDE (En)] |
| * [http://www.slackware.com/ Home page di Slackware (En)] | | * [http://www.slackware.com/ Home page di Slackware (En)] |
− | * [http://www.python.it Python - Sito Ufficiale] | + | * [http://www.python.it Pagina dedicata al linguaggio Python] |
| | | |
| ---- | | ---- |
| | | |
− | Lingue: [http://www.giustetti.net/wiki/index.php?title=TDE_14.0.0_python_support English] - '''Italiano'''
| + | {{footer_it | link_page=TDE_14.0.0_python_support}} |