Changes

13,784 bytes added ,  20:41, 12 April 2015
Aggiunto pagina dedicata alle librerie per TDE 14.0.0
Benvenuti nella pagina Wiki di Simone Giustetti.


Lingue: [http://www.giustetti.net/wiki/index.php?title=TDE_14.0.0_libraries 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 '''[http://www.cmake.org/ 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 [[TDE_14.0.0_prerequisiti#Struttura_di_uno_Script]] e che i criteri generali adottati per la compilazione dei pacchetti possono essere reperiti nella pagina [[TDE_14.0.0_prerequisiti#Opzioni_Generali]]. Si raccomanda infine di compilare ed installare i pacchetti seguendo l'ordine riportato nella pagina [[Trinity_desktop_environment_14.0.0#Ordine_di_compilazione]] onde evitare comportamenti inaspettati e fallimenti. Nel proseguo 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 [http://www.giustetti.net/resource/slackbuild/tde/1400/kipi-plugins.tar.gz 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 [http://www.giustetti.net/resource/slackbuild/tde/1400/libkdcraw.tar.gz 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 [http://www.giustetti.net/resource/slackbuild/tde/1400/libkexiv2.tar.gz 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 [http://www.giustetti.net/resource/slackbuild/tde/1400/libkipi.tar.gz 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 [http://www.giustetti.net/resource/slackbuild/tde/1400/libksquirrel.tar.gz 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 [http://www.giustetti.net/resource/slackbuild/tde/1400/libtdeldap.tar.gz indirizzo].

==== LIBTQT-PERL ====

La libreria '''PerlTQt''' funge da interfaccia tra '''[http://www.perl.it 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 [http://www.giustetti.net/resource/slackbuild/tde/1400/libtqt-perl.tar.gz 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
----

* [http://www.cmake.org/ Home page di Cmake (En)]
* [http://www.perl.it Home page del linguaggio Perl]
* [http://www.slackware.com/ Home page di Slackware (En)]
* [http://www.trinitydesktop.org/ Home page del progetto TDE (En)]

----

Lingue: [http://www.giustetti.net/wiki/index.php?title=TDE_14.0.0_libraries English] - '''Italiano'''