Changes

Aggiornamento pagine a nuova struttura
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&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].
 
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].
   Line 47: Line 46:     
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:
 
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:
 +
<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&agrave; rendendo errore. Configurare il codice sorgente invocando lo script '''configure.py''':
 
Altrimenti la procedura fallir&agrave; 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&ograve; 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&ograve; 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&agrave; 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&agrave; 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''' &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:
 
'''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:
 +
<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. &Egrave; 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. &Egrave; 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&agrave; procedere con la compilazione mediante '''make''':
 
Si potr&agrave; 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&agrave; alcuni file di documentazione dedicati agli sviluppatori e alcuni esempi di codice:
 
Infine, come per il pacchetto python-tqt, si installer&agrave; 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&ograve; 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&ograve; 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}}