TDE tdebindings

From Studiosg
Jump to: navigation, search

Benvenuti nella pagina Wiki di Simone Giustetti.


Lingue: English - Italiano


TDEBINDINGS

TDE - Pacchetti Base

Il Trinity Desktop Environment supporta svariati linguaggi di programmazione attraverso i quali è possibile scrivere applicazioni, moduli e programmi in grado di girare nell'ambiente Desktop. Tra i linguaggi di programmazione supportati vale la pena citare:

  • C++
  • Java
  • JavaScript (ECMAScript)
  • Perl
  • Python
  • Ruby

Il pacchetto tdebindings contiene le librerie di interfacccia tra l'ambiente desktop ed i linguaggi elencati.


Tdebindings su Slackware

Di tdebindings esiste uno script di compilazione basato su kdebindings versione 3.5.X. Contrariamente ad altri pacchetti, il sistema di compilazione non è ancora stato portato a cmake e si basa su autotools. Per configurare correttamente il pacchetto è necessario installare preventivamente i linguaggi di sviluppo che si desidera utilizzare:

Prerequisiti (Java)

Nel caso si volesse scrivere codice in linguaggio Java è necessario installare una versione recente del JRE (Java Runtime Engine) oppure del JDK (Java Development Kit) prima di compilare tdebindings. A seguito di una modifica alla licenza di Java imposta da Oracle non è più possibile per le distribuzioni Linux fornire direttamente un pacchetto Java. Regola che vale purtroppo anche per Slackware. Per generare un pacchetto di installazione standard sarà necessario:

  • Scaricare un JRE o un JDK dal sito ufficiale di Oracle, prestando attenzione che la versione corrisponda all'architettura desiderata: i486 oppure x86_64 e che il formato dell'archivio sia .tar.gz.
  • Modificare i parametri dello script java.SlackBuild reperibile nella directory /extra/source/java/ del Cd / Dvd di installazione in accordo con quanto scaricato.
  • Lanciare la procedura di conversione come nell'esempio riportato più sotto:
  ./java.SlackBuild /tmp/jre-7u5-linux-x64.tar.gz
  • Installare il pacchetto Slackware creato nella directory /tmp mediante il comando:
  installpkg <java_package>

oppure

  upgradepkg --install-new <java_package>

Java è ovviamente un componente opzionale e Tdebindings può essere compilato anche senza.

Prerequisiti (Perl)

Per poter utilizzare il linguaggio Perl nello sviluppo di applicazioni integrate in TDE è necessario installare il pacchetto contenete tale linguaggio di sviluppo.

Prerequisiti (Python)

Per poter utilizzare i bindings al linguaggio Python è necessario installare i pacchetti relativi al linguaggio di programmazione, quindi alcuni pacchetti specifici per TDE:

  • python-tqt
  • pytdeextensions
  • python-trinity

Purtroppo non è stato possibile compilare python-tqt; il pacchetto tdebindings sarà compilato senza il supporto per il linguaggio Python.

Prerequisiti (Ruby)

Per poter utilizzare il linguaggio Ruby nello sviluppo di applicazioni integrate in TDE è necessario installare il pacchetto contenete tale linguaggio di sviluppo.


Una volta installati i linguaggi di sviluppo desiderati si può procedere con la fase di configurazione. La directory /opt/trinity è stata impostata come base per il pacchetto coerentemente con le linee guida stabilite all'inizio del progetto. Sono stati inoltre presi alcuni accorgimenti per assicurarsi della corretta configurazione del pacchetto. Tali accorgimenti derivano dalla lettura della documentazione ufficiale e da analisi del vecchio build kit di Trinity per Slackware. Sono di seguito riportate alcune righe dello script di compilazione corredate dai relativi commenti.

Alcuni script di configurazione richiesti dalla procedura non sono presenti nel codice sorgente decompresso. Devono essere creati lanciando un apposito comando:

   # Prepare the package for building (Create the configure script).
   echo "(II) admin makefile run here" >> ${OUTPUT}/${PRGNAM}_configure.log
   make -f admin/Makefile.common \
   2>&1 | tee -a ${OUTPUT}/${PRGNAM}_configure.log

Il codice sorgente deve essere modificato in modo che riconosca la versione del pacchetto libtool presente sul sistema: 2.4.2, non 2.2.6 come erroneamente riportato nel codice.

   # Patch the admin/ltmain.sh script in order to solve a version mismatch.
   patch -p0 -i ${SRCDIR}/ltmain_version_update.patch

Lo script deve imporre esplicitamente i percorsi delle librerie Qt affinchè sia possibile reperire le stesse durante la compilazione:

   # Add temporary paths to handle new libraries during build
   export QTDIR=/opt/trinity
   export PATH=/opt/trinity/bin:/usr/bin:$PATH
   export LIBDIR=/usr/lib${LIBDIRSUFFIX}
   export LD_LIBRARY_PATH=/usr/lib${LIBDIRSUFFIX}:/opt/trinity/lib${LIBDIRSUFFIX}
   export PKG_CONFIG_PATH=:/usr/lib${LIBDIRSUFFIX}/pkgconfig:/opt/trinity/lib${LIBDIRSUFFIX}/pkgconfig:$PKG_CONFIG_PATH

Infine deve lanciare il comando ./configure con le opportune opzioni di configurazione tra cui vale la pena citare --enable-closure, richiesta dal pacchetto anche se per ragioni non documentate.

   # Configure the package
   LDFLAGS="${SLKLDFLAGS}" \
   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   ../${PRGNAM}-${VERSION}/configure \
      --prefix=${PREFIX} \
      --sysconfdir="/etc/trinity" \
      --libdir=${LIBDIR} \
      --mandir=${PREFIX}/man \
      --with-qt-dir=${QTDIR} \
      --with-qt-includes=${PREFIX}/include \
      --with-qt-libraries=${PREFIX}/lib${LIBDIRSUFFIX} \
      --disable-rpath \
      --enable-closure \
      2>&1 | tee -a ${OUTPUT}/${PRGNAM}_configure.log

A configurazione ultimata, sarà possibile procedere lanciando il comando make ed eseguendo le restanti operazioni di pacchettizzazione.

Una versione completa dello script può essere scaricata dal seguente link. Il pacchetto ottenuto potrà essere installato facendo ricorso al comando installpkg come è consuetudine in Slackware Linux.

Installato tdebindings sarà possibile sviluppare applicazioni per l'ambiente desktop e far girare programmi scritti in linguaggi diversi al quello nativo.


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


Link esterni





Lingue: English - Italiano