TDE 14.0.0 librerie

Benvenuti nella pagina Wiki di Simone Giustetti.


Lingue: English - Italiano


Librerie

Trinity Desktop Environment 14.0.0

Precedenti articoli hanno affrontato l'argomento della compilazione di pacchetti della versione 14.0.0 del Trinity Desktop Environment per la versione stabile di Slackware, la 14.1. Trattandosi si un progetto molto complesso ed articolato, il numero di pacchetti che lo costituiscono è considerevole e gli stessi sono raggruppati in sottoinsiemi per comodità. Il presente articolo fornirà una trattazione dei pacchetti etichettati come Librerie, che fungono da estensioni per l'ambiente di base aggiungendovi funzionalità opzionali.

Sistema di Compilazione

Si è esposto in precedenza l'origine di TDE e del sistema di compilazione adottato per i pacchetti del progetto in parte migrati a Cmake, il nuovo sistema di compilazione, ed in parte ancora legati ad Autotools ed agli script di configurazione tipici dello stesso. Il gruppo delle librerie rappresenta il caso più chiaro e semplice in quanto nessuno dei pacchetti è stato ancora migrato a Cmake. Il sistema adottato per tutti i pacchetti risulta essere Autotools.

Opzioni Specifiche

Prima di affrontare in maniera specifica la compilazione di ogni pacchetto mi preme ricordare che la struttura di uno script di compilazione è stata descritta nella pagina Struttura di uno Script e che i criteri generali adottati per la compilazione dei pacchetti possono essere reperiti nella pagina Opzioni Generali. Si raccomanda infine di compilare ed installare i pacchetti seguendo l'ordine riportato nella pagina Ordine di Compilazione onde evitare comportamenti inaspettati e fallimenti. Nel prosieguo dell'articolo i pacchetti verranno trattati in ordine alfabetico e non in quello di compilazione.

KIPI-PLUGINS

Kipi Plugins contiene alcuni plug-in per la libreria libKipi in grado di aggiungere funzionalità ai programmi ed alle applicazioni di gestione delle immagini inclusi in TDE: digiKam, Gwenview, KimDaBa e ShowImg. I plug-in aggiungono nuovi menù, scorciatoie da tastiera e funzioni opzionali. Una volta installati possono essere abilitati uno per uno nelle schermate di configurazione dei programmi sopra elencati. La compilazione di un pacchetto funzionante per Slackware 14.1 richiede che sia installata una patch per risolvere un conflitto di versione per il pacchetto libtool:

   patch -p0 -i ${SRCDIR}/ltmain_version_update.patch

Configurare il codice sorgente:

   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/configure \
      ${DEBUG_AUTOTOOL_OPT} \
      --libdir=${LIBDIR} \
      --prefix=${PREFIX} \
      --with-qt-dir=${QTDIR} \
      --with-qt-includes=${QTDIR}/include \
      --with-qt-libraries=${QTDIR}/lib${LIBDIRSUFFIX}

Quindi invocare il comando make per avviare la compilazione.

Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.

LIBKDCRAW

Il pacchetto Libkdcraw contiene una libreria per interfacciare il linguaggio C++ con dcraw: un programma utilizzato per leggere le immagini in formato RAW. La libreria è usata da digiKam, i plug-in per kipi ed altri programmi di gestione delle immagini distribuiti con TDE. La compilazione di un pacchetto funzionante per Slackware 14.1 richiede che sia installata una patch per risolvere un conflitto di versione per il pacchetto libtool:

   patch -p0 -i ${SRCDIR}/ltmain_version_update.patch

La compilazione del codice sorgente in una directory dedicata non sembra essere supportato dal pacchetto perciò le righe corrispondenti dello script devono essere commentate:

   # Do not create a directory where to build source as out of tree building does
   # not seem to be supported and fails complaining for missing files.
   # cd ${TMP}/tmp-${PRGNAM}
   # mkdir build
   # cd build

Si può quindi procedere configurando il codice sorgente:

   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/configure \
      ${DEBUG_AUTOTOOL_OPT} \
      --libdir=${LIBDIR} \
      --prefix=${PREFIX} \
      --with-qt-dir=${QTDIR} \
      --with-qt-includes=${QTDIR}/include \
      --with-qt-libraries=${QTDIR}/lib${LIBDIRSUFFIX}

Ed invocando il comando make per avviare la compilazione.

Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.

LIBKEXIV2

Il pacchetto Libkexiv2 contiene una libreria di interfaccia per semplificare l'uso di Exiv2: una libreria per la manipolazione dei metadati delle immagini utilizzata da digiKam, alcuni plug-in per kipi ed altri programmi di gestione delle immagini distribuiti con TDE. La compilazione di un pacchetto funzionante per Slackware 14.1 richiede che sia installata una patch per risolvere un conflitto di versione per il pacchetto libtool:

   patch -p0 -i ${SRCDIR}/ltmain_version_update.patch

Si può quindi procedere configurando il codice sorgente:

   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/configure \
      ${DEBUG_AUTOTOOL_OPT} \
      --libdir=${LIBDIR} \
      --prefix=${PREFIX} \
      --with-qt-dir=${QTDIR} \
      --with-qt-includes=${QTDIR}/include \
      --with-qt-libraries=${QTDIR}/lib${LIBDIRSUFFIX}

Ed invocando il comando make per avviare la compilazione.

Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.

LIBKIPI

Kipi è un progetto per implementare una struttura di plug-in coerente, semplice ed utilizzabile da tutte le applicazioni grafiche distribuite in TDE. L'architettura, che è basata sul sistema di plug-in di digiKam, prende il nome TDE Image Plugin Interface ed è utilizzata oltre che da digiKam anche da Gwenview, KimDaBa e ShowImg. Per compilare un pacchetto funzionante per Slackware 14.1 è necessario installare una patch per risolvere un conflitto di versione per il pacchetto libtool:

   patch -p0 -i ${SRCDIR}/ltmain_version_update.patch

Configurare il codice sorgente:

   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/configure \
      ${DEBUG_AUTOTOOL_OPT} \
      --libdir=${LIBDIR} \
      --prefix=${PREFIX} \
      --with-qt-dir=${QTDIR} \
      --with-qt-includes=${QTDIR}/include \
      --with-qt-libraries=${QTDIR}/lib${LIBDIRSUFFIX}

Quindi lanciare la compilazione mediante il comando make.

Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.

LIBKSQUIRREL

La libreria Ksquirrel contiene numerosi codec per formati di immagini d'uso comune quali: BMP, GIF, JPEG, PNG, PSD, TIFF ed altri ancora. Per compilare un pacchetto funzionante per Slackware 14.1 è necessario installare una patch per risolvere un conflitto di versione per il pacchetto libtool:

   patch -p0 -i ${SRCDIR}/ltmain_version_update.patch

La compilazione del codice sorgente in una directory dedicata non sembra essere supportato dal pacchetto perciò le righe corrispondenti dello script devono essere commentate:

   # Do not create a directory where to build source as out of tree building does
   # not seem to be supported and fails complaining for missing files.
   # cd ${TMP}/tmp-${PRGNAM}
   # mkdir build
   # cd build

Per procedere a configurare il codice sorgente passando allo script configure l'opzione specifica --disable-dxf:

   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/configure \
      ${DEBUG_AUTOTOOL_OPT} \
      --disable-dxf \
      --libdir=${LIBDIR} \
      --prefix=${PREFIX}

Ed avviare 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.

LIBTDELDAP

IL pacchetto Libtdeldap aggiunge il supporto per il protocollo LDAP a TDE. Per compilare un pacchetto funzionante per Slackware 14.1 è necessario installare una patch per risolvere un conflitto di versione per il pacchetto libtool:

   patch -p0 -i ${SRCDIR}/ltmain_version_update.patch

Configurare il codice sorgente:

   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/configure \
      ${DEBUG_AUTOTOOL_OPT} \
      --prefix=${PREFIX}

Ed avviare la procedura invocando il comando make.

Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.

LIBTQT-PERL

La libreria PerlTQt funge da interfaccia tra Perl, un celebre linguaggio di programmazione interpretato, e le librerie TQt su cui si basa TDE. La libreria può essere impiegata per scrivere programmi e script in codice Perl 5 integrandoli con TDE. Per compilare un pacchetto funzionante per Slackware 14.1 è necessario installare una patch per risolvere un conflitto di versione per il pacchetto libtool:

   patch -p0 -i ${SRCDIR}/ltmain_version_update.patch

Configurare il codice sorgente:

   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/configure \
      ${DEBUG_AUTOTOOL_OPT} \
      --prefix=${PREFIX} \
      --with-qt-dir=${PREFIX}

Ed avviare la procedura invocando il comando make.

Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.

MLT

MLT consiste in una libreria sviluppata per la trasmissione del segnale televisivo. Purtroppo la compilazione del pacchetto si è rivelata molto problematica. Un primo tentativo eseguito con il codice sorgente estratto dall'archivio inalterato è fallito lamentando la mancanza di alcuni file include quali: qimage.h. Verificata la presenza dei file si sono esplicitati i percorsi di inclusione accodandoli ai paramatri di compilazione:

   SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I/usr/include/tqt/Qt -I${PREFIX_TDE}/include"

La modifica non ha però sortito l'esito sperato. È allora stato modificato il file ./libraries/mlt/src/modules/qimage/Makefile sostituendo la riga:

   CFLAGS+=-I../../

con:

   CFLAGS+=-I../../ -I/usr/include/tqt -I/usr/include/tqt/Qt

La modifica ha risolto il problema solo temporaneamente in quanto la compilazione successiva è fallita lamentando la mancanza del file QtGui/qtransform.h il quale non fa parte del pacchetto TQt, ma è invece incluso in Qt4. L'errore svanisce installando le librerie Qt4, ma solo per essere sostituito da decine di problemi con le dichiarazioni di oggetti e strutture contenuti in qtwrapper. In definitiva, valutando che la libreria Mlt risenta di problemi di convivenza tra TQt e Qt4, si è rinunciato a compilare il pacchetto in attesa di aggiornamenti e correzioni da parte degli sviluppatori.

MLT++

La libreria si appoggia sulla precedente. Non essendo stato possibile compilare un pacchetto funzionante per Mlt si è dovuto rinunciare anche a Mlt++.

Conclusioni

Nel corso dell'articolo sono state presentate alcune considerazioni inerenti la compilazione di numerose librerie utili per espandere le funzionalità del Trinity Desktop Environment. Sono state esposte le linee guida specifiche per ogni pacchetto e sono stati forniti i link agli script SlackBuild scritti nel corso della 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. Tutti i pacchetti prodotti dagli script potranno essere reperiti nella directory /tmp della propria macchina e potranno essere installati mediante il comando installpkg utilizzato in Slackware a tal fine.


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


Link esterni





Lingue: English - Italiano