Difference between revisions of "TDE 14.0.0 prerequisiti"
m |
|||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | {{header_it|title=Compilazione dei prerequisiti di TDE| keyword={{Template:keyword_it_tde}}| description=Compilare pacchetti funzionanti per i prerequisiti di Trinity Desktop Environment su Slackware Linux | link_page=TDE_14.0.0_prerequisites}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
== '''Prerequisiti''' == | == '''Prerequisiti''' == | ||
− | [[trinity_desktop_environment_14.0.0]] | + | [[trinity_desktop_environment_14.0.0 | Trinity Desktop Environment 14.0.0]] |
I pacchetti raggruppati sotto il nome generico '''Prerequisiti''' includono tutte le librerie base utilizzate dall'ambiente desktop ed alcuni componenti addizionali necessari per attivare funzionalità avanzate. Le librerie base includono ovviamente '''TQt3''', la versione di Qt sviluppata e supportata dal progetto Trinity, '''tqtinterface''', libreria che aggiunge un livello di astrazione tra TQt e TDE, '''arts''', il gestore per gli effetti ed i flussi sonori in TDE, '''dbus-tqt''' e '''dbus-1-tqt''', che collegano l'ambiente desktop al sottosistema di gestione dello hardware. Le rimanenti librerie: '''avahi-tqt''', '''libart-lgpl''', '''libcaldav''', '''libcarddav''', '''python-tqt''', '''sip4-tqt''', '''tqca''', '''tqca-tls''' e '''tqscintilla''' sono opzionali. L'ambiente può essere compilato senza di esse rinunciando ad alcune utili funzionalità. | I pacchetti raggruppati sotto il nome generico '''Prerequisiti''' includono tutte le librerie base utilizzate dall'ambiente desktop ed alcuni componenti addizionali necessari per attivare funzionalità avanzate. Le librerie base includono ovviamente '''TQt3''', la versione di Qt sviluppata e supportata dal progetto Trinity, '''tqtinterface''', libreria che aggiunge un livello di astrazione tra TQt e TDE, '''arts''', il gestore per gli effetti ed i flussi sonori in TDE, '''dbus-tqt''' e '''dbus-1-tqt''', che collegano l'ambiente desktop al sottosistema di gestione dello hardware. Le rimanenti librerie: '''avahi-tqt''', '''libart-lgpl''', '''libcaldav''', '''libcarddav''', '''python-tqt''', '''sip4-tqt''', '''tqca''', '''tqca-tls''' e '''tqscintilla''' sono opzionali. L'ambiente può essere compilato senza di esse rinunciando ad alcune utili funzionalità. | ||
Line 53: | Line 48: | ||
=== Struttura di uno Script === | === Struttura di uno Script === | ||
− | Gli script per la versione 3.5.13.2 di TDE ([[Trinity_desktop_environment#Prerequisiti]]) sono stati modificati ed aggiornati per l'ultimo rilascio. La struttura è rimasta pressochè invariata: | + | Gli script per la versione 3.5.13.2 di TDE ([[Trinity_desktop_environment#Prerequisiti |Prerequisiti]]) sono stati modificati ed aggiornati per l'ultimo rilascio. La struttura è rimasta pressochè invariata: |
* Introduzione in cui viene descritto lo scopo del file e la licenza d'uso. | * Introduzione in cui viene descritto lo scopo del file e la licenza d'uso. | ||
* Caricamento dei file esterni contenenti i parametri di compilazione globali e quelli locali: | * Caricamento dei file esterni contenenti i parametri di compilazione globali e quelli locali: | ||
+ | <syntaxhighlight lang="bash"> | ||
if [ -r ../../TDE.options ]; then | if [ -r ../../TDE.options ]; then | ||
. ../../TDE.options | . ../../TDE.options | ||
Line 63: | Line 59: | ||
. ./local.options | . ./local.options | ||
fi | fi | ||
+ | </syntaxhighlight> | ||
* Impostazione delle variabili globali dello script: | * Impostazione delle variabili globali dello script: | ||
+ | <syntaxhighlight lang="bash"> | ||
ARCHIVE_FORMAT=${ARCHIVE_FORMAT:-"tar.bz2"} | ARCHIVE_FORMAT=${ARCHIVE_FORMAT:-"tar.bz2"} | ||
BUILD=${BUILD:-"1"} | BUILD=${BUILD:-"1"} | ||
Line 69: | Line 67: | ||
PRGNAM="tqtinterface" | PRGNAM="tqtinterface" | ||
PREFIX=${PREFIX:-"/usr"} | PREFIX=${PREFIX:-"/usr"} | ||
− | MANDIR=${MANDIR:- | + | MANDIR=${MANDIR:-${PREFIX}/man} |
SOURCE_SUBDIR=${SOURCE_SUBDIR:-"dependencies"} | SOURCE_SUBDIR=${SOURCE_SUBDIR:-"dependencies"} | ||
SRCVER=${SRCVER:-"R14.0.0"} | SRCVER=${SRCVER:-"R14.0.0"} | ||
Line 77: | Line 75: | ||
DOCS="AUTHORS COPYING HOW.TO.BUILD NAMING README TODO TRINITY.RELEASE tqtinterface.lsm" | DOCS="AUTHORS COPYING HOW.TO.BUILD NAMING README TODO TRINITY.RELEASE tqtinterface.lsm" | ||
+ | </syntaxhighlight> | ||
: Sono state aggiunte variabili rispetto alla versione 3.5.13.2 quali il formato dell'archivio e le opzioni da passare al programma '''tar'''. Si spera che queste possano semplificare il processo di compilazione una volta stabilizzato il formato con cui viene rilasciato il codice sorgente. | : Sono state aggiunte variabili rispetto alla versione 3.5.13.2 quali il formato dell'archivio e le opzioni da passare al programma '''tar'''. Si spera che queste possano semplificare il processo di compilazione una volta stabilizzato il formato con cui viene rilasciato il codice sorgente. | ||
* Determinazione dell'architettura per cui si compila il pacchetto ed impostazione dei parametri per il compilatore, il linker, le librerie, ecc.: | * Determinazione dell'architettura per cui si compila il pacchetto ed impostazione dei parametri per il compilatore, il linker, le librerie, ecc.: | ||
+ | <syntaxhighlight lang="bash"> | ||
if [ -z "${MARCH}" ]; then | if [ -z "${MARCH}" ]; then | ||
MARCH=`uname -m` | MARCH=`uname -m` | ||
Line 95: | Line 95: | ||
esac | esac | ||
fi | fi | ||
+ | </syntaxhighlight> | ||
: Il codice è stato aggiornato rispetto alla versione precedente in modo da usare i valori impostati attraverso i parametri globali consentendo l'uso degli script anche per ambienti in '''chroot'''. | : Il codice è stato aggiornato rispetto alla versione precedente in modo da usare i valori impostati attraverso i parametri globali consentendo l'uso degli script anche per ambienti in '''chroot'''. | ||
* Creazione delle directory utilizzate durante la procedura: | * Creazione delle directory utilizzate durante la procedura: | ||
+ | <syntaxhighlight lang="bash"> | ||
mkdir -p ${TMP}/tmp-${PRGNAM} # Location to build the source | mkdir -p ${TMP}/tmp-${PRGNAM} # Location to build the source | ||
rm -rf ${TMP}/tmp-${PRGNAM}/* # Remove the remnants of previous build and continue | rm -rf ${TMP}/tmp-${PRGNAM}/* # Remove the remnants of previous build and continue | ||
Line 102: | Line 104: | ||
rm -rf ${PKG}/* # We always erase old package's contents | rm -rf ${PKG}/* # We always erase old package's contents | ||
mkdir -p ${OUTPUT} # Place for the package to be saved | mkdir -p ${OUTPUT} # Place for the package to be saved | ||
+ | </syntaxhighlight> | ||
* Assegnazione dei permessi ai file: | * Assegnazione dei permessi ai file: | ||
+ | <syntaxhighlight lang="bash"> | ||
chown -R root:root . | chown -R root:root . | ||
find . \ | find . \ | ||
Line 109: | Line 113: | ||
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ | \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ | ||
-exec chmod 644 {} \; | -exec chmod 644 {} \; | ||
+ | </syntaxhighlight> | ||
* Configurazione, compilazione ed installazione del pacchetto. | * Configurazione, compilazione ed installazione del pacchetto. | ||
* Aggiunta di documentazione, link, file di esempio e tutto quanto serva a rendere funzionale il pacchetto: | * Aggiunta di documentazione, link, file di esempio e tutto quanto serva a rendere funzionale il pacchetto: | ||
+ | <syntaxhighlight lang="bash"> | ||
mkdir -p ${PKG}/usr/doc/${PRGNAM}"-"$VERSION | mkdir -p ${PKG}/usr/doc/${PRGNAM}"-"$VERSION | ||
cp -a ${DOCS} ${PKG}/usr/doc/${PRGNAM}"-"${VERSION} | cp -a ${DOCS} ${PKG}/usr/doc/${PRGNAM}"-"${VERSION} | ||
Line 124: | Line 130: | ||
find ${PKG}/${PREFIX}/include -type f -exec chmod 0644 {} \; | find ${PKG}/${PREFIX}/include -type f -exec chmod 0644 {} \; | ||
fi | fi | ||
+ | </syntaxhighlight> | ||
* Creazione del pacchetto. | * Creazione del pacchetto. | ||
Line 130: | Line 137: | ||
Le opzioni di compilazione generiche varieranno solo in funzione del sistema di compilazione adottato. Per i pacchetti che utilizzano '''Autotools''' le fasi consistono in: | Le opzioni di compilazione generiche varieranno solo in funzione del sistema di compilazione adottato. Per i pacchetti che utilizzano '''Autotools''' le fasi consistono in: | ||
* Ricostruzione dei file utilizzati da '''Autoconf / Automake''': | * Ricostruzione dei file utilizzati da '''Autoconf / Automake''': | ||
− | + | <syntaxhighlight lang="bash"> | |
− | + | cp -Rp /usr/share/aclocal/libtool.m4 <pkg_path_build>/admin/libtool.m4.in | |
− | + | cp -Rp <path to your systems ltmain.sh file> admin/ltmain.sh | |
+ | make -f admin/Makefile.common | ||
+ | </syntaxhighlight> | ||
* Impostazione delle opzioni per il compilatore ed il linker, impostazione dei percorsi per i file include, le librerie ed i manuali: | * Impostazione delle opzioni per il compilatore ed il linker, impostazione dei percorsi per i file include, le librerie ed i manuali: | ||
− | + | <syntaxhighlight lang="bash"> | |
− | + | export LD_LIBRARY_PATH=${PREFIX}/lib${LIBDIRSUFFIX}:${PREFIX}/lib${LIBDIRSUFFIX}/trinity:${LD_LIBRARY_PATH} | |
− | + | export LIBDIR=${PREFIX}/lib${LIBDIRSUFFIX} | |
− | + | export MANDIR | |
− | + | export PATH=${PREFIX}/bin:${PATH} | |
− | + | export PKG_CONFIG_PATH=:${PREFIX}/lib${LIBDIRSUFFIX}/pkgconfig:${PKG_CONFIG_PATH} | |
− | + | export PREFIX | |
− | + | export QTDIR=${PREFIX} | |
+ | export SYSCONFDIR=/etc/trinity | ||
# Enable only one of the following: | # Enable only one of the following: | ||
# export DEBUG_AUTOTOOL_OPT="--enable-debug=full" | # export DEBUG_AUTOTOOL_OPT="--enable-debug=full" | ||
− | + | export DEBUG_AUTOTOOL_OPT="--disable-debug" | |
+ | </syntaxhighlight> | ||
* Configurazione del codice sorgente: | * Configurazione del codice sorgente: | ||
+ | <syntaxhighlight lang="bash"> | ||
CFLAGS="${SLKCFLAGS}" \ | CFLAGS="${SLKCFLAGS}" \ | ||
CXXFLAGS="${SLKCFLAGS}" \ | CXXFLAGS="${SLKCFLAGS}" \ | ||
− | ./ | + | ./configure \ |
− | + | --prefix=${PREFIX} \ | |
− | + | --libdir=${LIBDIR} \ | |
− | + | --mandir=${MANDIR} \ | |
− | + | --build=$ARCH-slackware-linux \ | |
− | 2>&1 | | + | 2>&1 | tee -a ${OUTPUT}/${PRGNAM}_configure.log |
+ | </syntaxhighlight> | ||
* Compilazione ed installazione: | * Compilazione ed installazione: | ||
− | + | <syntaxhighlight lang="bash"> | |
− | + | make VERBOSE=1 2>&1 | tee ${OUTPUT}/${PRGNAM}_make.log | |
+ | make install DESTDIR=${PKG} 2>&1 | tee ${OUTPUT}/${PRGNAM}_install.log | ||
+ | </syntaxhighlight> | ||
Per i pacchetti che utilizzano '''[http://www.cmake.org/ cmake]''' le fasi consistono in: | Per i pacchetti che utilizzano '''[http://www.cmake.org/ cmake]''' le fasi consistono in: | ||
* Pulizia della cache di cmake: | * Pulizia della cache di cmake: | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | find . -name CMakeCache.txt -exec rm {} \; | ||
+ | </syntaxhighlight> | ||
* Impostazione delle opzioni per il compilatore ed il linker, impostazione dei percorsi per i file include, le librerie ed i manuali: | * Impostazione delle opzioni per il compilatore ed il linker, impostazione dei percorsi per i file include, le librerie ed i manuali: | ||
− | + | <syntaxhighlight lang="bash"> | |
− | + | export LD_LIBRARY_PATH=${PREFIX}/lib${LIBDIRSUFFIX}:${PREFIX}/lib${LIBDIRSUFFIX}/trinity:${LD_LIBRARY_PATH} | |
− | + | export LIBDIR=${PREFIX}/lib${LIBDIRSUFFIX} | |
− | + | export MANDIR | |
− | + | export PATH=${PREFIX}/bin:${PATH} | |
− | + | export PKG_CONFIG_PATH=${PREFIX}/lib${LIBDIRSUFFIX}/pkgconfig:${PKG_CONFIG_PATH} | |
− | + | export PREFIX | |
− | + | export QTDIR=${PREFIX} | |
+ | export SYSCONFDIR=/etc/trinity | ||
# Enable only one of the following: | # Enable only one of the following: | ||
# export DEBUG_AUTOTOOL_OPT="--disable-debug" | # export DEBUG_AUTOTOOL_OPT="--disable-debug" | ||
− | + | export DEBUG_CMAKE_OPT="" | |
+ | </syntaxhighlight> | ||
* Configurazione del codice sorgente: | * Configurazione del codice sorgente: | ||
− | + | <syntaxhighlight lang="bash"> | |
− | + | cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \ | |
− | + | -DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \ | |
− | + | -DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \ | |
− | + | -DCMAKE_INSTALL_PREFIX=${PREFIX} \ | |
− | + | -DLIB_SUFFIX=${LIBDIRSUFFIX} \ | |
− | + | -DMAN_INSTALL_DIR=${MANDIR} \ | |
− | + | -DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \ | |
− | 2>&1 | | + | -DBUILD_ALL=ON \ |
+ | 2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log | ||
+ | </syntaxhighlight> | ||
* Compilazione ed installazione: | * Compilazione ed installazione: | ||
− | + | <syntaxhighlight lang="bash"> | |
− | + | make VERBOSE=1 2>&1 | tee ${OUTPUT}/${PRGNAM}_make.log | |
+ | make install DESTDIR=${PKG} 2>&1 | tee ${OUTPUT}/${PRGNAM}_install.log | ||
+ | </syntaxhighlight> | ||
I pacchetti '''python-tqt''' e '''sip4-tqt''' utilizzano script in linguaggio Python per configurare il codice sorgente. Entrambi gli script richiedono solo la configurazione delle opzioni per il compilatore ed il linker. | I pacchetti '''python-tqt''' e '''sip4-tqt''' utilizzano script in linguaggio Python per configurare il codice sorgente. Entrambi gli script richiedono solo la configurazione delle opzioni per il compilatore ed il linker. | ||
* Configurazione del codice sorgente: | * Configurazione del codice sorgente: | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | python configure.py \ | ||
CFLAGS="${SLKCFLAGS}" \ | CFLAGS="${SLKCFLAGS}" \ | ||
CXXFLAGS="${SLKCFLAGS}" \ | CXXFLAGS="${SLKCFLAGS}" \ | ||
− | 2>&1 | | + | 2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log |
+ | </syntaxhighlight> | ||
* Compilazione ed installazione: | * Compilazione ed installazione: | ||
− | + | <syntaxhighlight lang="bash"> | |
− | + | make VERBOSE=1 2>&1 | tee ${OUTPUT}/${PRGNAM}_make.log | |
+ | make install DESTDIR=${PKG} 2>&1 | tee ${OUTPUT}/${PRGNAM}_install.log | ||
+ | </syntaxhighlight> | ||
Infine '''tqscintilla''', l'unico pacchetto ad utilizzare '''tqmake''', richiede anch'esso la definizione dei parametri per il compilatore ed il linker. | Infine '''tqscintilla''', l'unico pacchetto ad utilizzare '''tqmake''', richiede anch'esso la definizione dei parametri per il compilatore ed il linker. | ||
* Configurazione del codice sorgente: | * Configurazione del codice sorgente: | ||
+ | <syntaxhighlight lang="bash"> | ||
CFLAGS="${SLKCFLAGS}" \ | CFLAGS="${SLKCFLAGS}" \ | ||
− | CXXFLAGS="${SLKCFLAGS} | + | CXXFLAGS="${SLKCFLAGS} -fno-exceptions" \ |
− | + | tqmake qscintilla.pro \ | |
− | 2>&1 | | + | 2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log |
+ | </syntaxhighlight> | ||
* Compilazione ed installazione: | * Compilazione ed installazione: | ||
− | + | <syntaxhighlight lang="bash"> | |
− | + | make VERBOSE=1 2>&1 | tee ${OUTPUT}/${PRGNAM}_make.log | |
+ | make install INSTALL_ROOT=${PKG} 2>&1 | tee ${OUTPUT}/${PRGNAM}_install.log | ||
+ | </syntaxhighlight> | ||
=== Opzioni Specifiche === | === Opzioni Specifiche === | ||
Line 217: | Line 248: | ||
'''A'''nalog '''R'''eal '''T'''ime '''S'''ynthesizer è una libreria audio che fornisce '''un sound server integrato''', un mixer per i flussi sonori ed alcune applicazioni di configurazione. Utilizzata sin dai tempi di KDE 2, Arts è stata rimpiazzata da '''Phonon''' in KDE 4 ed adottata da TDE. Per poter compilare Arts è necessario impostare l'opzione '''-DCMAKE_SKIP_RPATH="OFF"''' in fase di configurazione. Segue la riga con cui è invocato '''[http://www.cmake.org/ cmake]''': | '''A'''nalog '''R'''eal '''T'''ime '''S'''ynthesizer è una libreria audio che fornisce '''un sound server integrato''', un mixer per i flussi sonori ed alcune applicazioni di configurazione. Utilizzata sin dai tempi di KDE 2, Arts è stata rimpiazzata da '''Phonon''' in KDE 4 ed adottata da TDE. Per poter compilare Arts è necessario impostare l'opzione '''-DCMAKE_SKIP_RPATH="OFF"''' in fase di configurazione. Segue la riga con cui è invocato '''[http://www.cmake.org/ cmake]''': | ||
− | + | <syntaxhighlight lang="bash"> | |
− | + | cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \ | |
− | + | -DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \ | |
− | + | -DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \ | |
− | + | -DCMAKE_INSTALL_PREFIX=${PREFIX} \ | |
− | + | -DCMAKE_SKIP_RPATH="OFF" \ | |
− | + | -DLIB_SUFFIX=${LIBDIRSUFFIX} \ | |
− | + | -DMAN_INSTALL_DIR=${MANDIR} \ | |
− | + | -DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \ | |
+ | -DBUILD_ALL=ON | ||
+ | </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/arts.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/arts.tar.gz indirizzo]. | ||
Line 231: | Line 264: | ||
Una libreria che aggiunge funzioni di ricerca DNS ai pacchetti base tdebase e tdelibs. Per compilare correttamente richiede come dipendenza la libreria '''avahi''' che non fa parte della distribuzione Slackware standard. È possibile reperire uno script di compilazione per avahi presso il sito [http://slackbuilds.org slackbuilds.org]. Una volta installata la dipendenza, sarà possibile compilare '''avahi-tqt''' impostando le variabili di ambiente: | Una libreria che aggiunge funzioni di ricerca DNS ai pacchetti base tdebase e tdelibs. Per compilare correttamente richiede come dipendenza la libreria '''avahi''' che non fa parte della distribuzione Slackware standard. È possibile reperire uno script di compilazione per avahi presso il sito [http://slackbuilds.org slackbuilds.org]. Una volta installata la dipendenza, sarà possibile compilare '''avahi-tqt''' impostando le variabili di ambiente: | ||
+ | <syntaxhighlight lang="bash"> | ||
PREFIX="/usr/local" | PREFIX="/usr/local" | ||
MANDIR="/usr/man" | MANDIR="/usr/man" | ||
+ | </syntaxhighlight> | ||
Esportando il percorso di installazione delle librerie '''TQt3''': | Esportando il percorso di installazione delle librerie '''TQt3''': | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | export QTDIR=${PREFIX_TDE} | ||
+ | </syntaxhighlight> | ||
Lanciando lo script autogen.sh perchè generi gli script ed i file di configurazione: | Lanciando lo script autogen.sh perchè generi gli script ed i file di configurazione: | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | sh ./autogen.sh | ||
+ | </syntaxhighlight> | ||
Ed infine eseguendo la configurazione del codice sorgente passando i parametri | Ed infine eseguendo la configurazione del codice sorgente passando i parametri | ||
+ | <syntaxhighlight lang="bash"> | ||
CFLAGS="${SLKCFLAGS}" \ | CFLAGS="${SLKCFLAGS}" \ | ||
CXXFLAGS="${SLKCFLAGS}" \ | CXXFLAGS="${SLKCFLAGS}" \ | ||
− | ./ | + | ./configure \ |
− | + | --prefix=${PREFIX} \ | |
− | + | --libdir=${LIBDIR} \ | |
− | + | --mandir=${MANDIR} \ | |
− | + | --build=$ARCH-slackware-linux | |
+ | </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/avahi-tqt.tar.gz indirizzo]. Nota bene: lo script è fornito solo a titolo di riferimento. Abitualmente non abilito funzioni o pacchetti opzionali potendo farne a meno. Non avendo installato avahi non ho potuto verificare l'efficacia dello script Slackbuild, ma solo la forma e la sintassi. | 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/avahi-tqt.tar.gz indirizzo]. Nota bene: lo script è fornito solo a titolo di riferimento. Abitualmente non abilito funzioni o pacchetti opzionali potendo farne a meno. Non avendo installato avahi non ho potuto verificare l'efficacia dello script Slackbuild, ma solo la forma e la sintassi. | ||
Line 252: | Line 293: | ||
Pulire la chache di cmake: | Pulire la chache di cmake: | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | find . -name CMakeCache.txt -exec rm {} \; | ||
+ | </syntaxhighlight> | ||
Passare a cmake l'opzione '''-DCMAKE_SKIP_RPATH="OFF"'''. L'invocazione completa di cmake risulterà: | Passare a cmake l'opzione '''-DCMAKE_SKIP_RPATH="OFF"'''. L'invocazione completa di cmake risulterà: | ||
− | + | <syntaxhighlight lang="bash"> | |
− | + | cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \ | |
− | + | -DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \ | |
− | + | -DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \ | |
− | + | -DCMAKE_INSTALL_PREFIX=${PREFIX} \ | |
− | + | -DCMAKE_SKIP_RPATH="OFF" \ | |
− | + | -DLIB_SUFFIX=${LIBDIRSUFFIX} \ | |
− | + | -DMAN_INSTALL_DIR=${MANDIR} \ | |
− | + | -DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \ | |
+ | -DBUILD_ALL=ON | ||
+ | </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/dbus-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/dbus-tqt.tar.gz indirizzo]. | ||
Line 270: | Line 315: | ||
Pulire la chache ci cmake: | Pulire la chache ci cmake: | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | find . -name CMakeCache.txt -exec rm {} \; | ||
+ | </syntaxhighlight> | ||
Passare a cmake l'opzione '''-DCMAKE_SKIP_RPATH="OFF"'''. L'invocazione completa di cmake risulterà: | Passare a cmake l'opzione '''-DCMAKE_SKIP_RPATH="OFF"'''. L'invocazione completa di cmake risulterà: | ||
− | + | <syntaxhighlight lang="bash"> | |
− | + | cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \ | |
− | + | -DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \ | |
− | + | -DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \ | |
− | + | -DCMAKE_INSTALL_PREFIX=${PREFIX} \ | |
− | + | -DCMAKE_SKIP_RPATH="OFF" \ | |
− | + | -DLIB_SUFFIX=${LIBDIRSUFFIX} \ | |
− | + | -DMAN_INSTALL_DIR=${MANDIR} \ | |
− | + | -DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \ | |
+ | -DBUILD_ALL=ON | ||
+ | </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/dbus-1-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/dbus-1-tqt.tar.gz indirizzo]. | ||
Line 286: | Line 335: | ||
'''Libart''' è una libreria per la gestione ad alte prestazioni della grafica 2-D utilizzata da '''Gnome''', '''KDE''' e '''TDE'''. La versione della libreria distribuita con TDE differisce da quella standard inclusa in numerose distribuzioni Linux. Si consiglia di sostituire l'eventuale versione installata con quella TDE. Per compilare libart è sufficiente imporre alcune variabili di ambiente per i percorsi: | '''Libart''' è una libreria per la gestione ad alte prestazioni della grafica 2-D utilizzata da '''Gnome''', '''KDE''' e '''TDE'''. La versione della libreria distribuita con TDE differisce da quella standard inclusa in numerose distribuzioni Linux. Si consiglia di sostituire l'eventuale versione installata con quella TDE. Per compilare libart è sufficiente imporre alcune variabili di ambiente per i percorsi: | ||
+ | <syntaxhighlight lang="bash"> | ||
PREFIX="/usr" | PREFIX="/usr" | ||
MANDIR="/usr/man" | MANDIR="/usr/man" | ||
+ | </syntaxhighlight> | ||
Ed eseguire la configurazione: | Ed eseguire la configurazione: | ||
+ | <syntaxhighlight lang="bash"> | ||
CFLAGS="${SLKCFLAGS}" \ | CFLAGS="${SLKCFLAGS}" \ | ||
CXXFLAGS="${SLKCFLAGS}" \ | CXXFLAGS="${SLKCFLAGS}" \ | ||
− | ./ | + | ./configure \ |
− | + | --prefix=${PREFIX} \ | |
− | + | --libdir=${LIBDIR} \ | |
− | + | --build=$ARCH-slackware-linux | |
+ | </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/libart-lgpl.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/libart-lgpl.tar.gz indirizzo]. | ||
Line 300: | Line 353: | ||
'''Libcaldav''' è una libreria che implementa il protocollo '''CALDAV''' lato client come definito nel documento '''rfc4791'''. La libreria viene utilizzata dal calendario condiviso incluso nel pacchetto base '''tdepim'''. Trattasi di un pacchetto opzionale. Per compilare '''libcaldav''' si impostino le variabili di ambiente: | '''Libcaldav''' è una libreria che implementa il protocollo '''CALDAV''' lato client come definito nel documento '''rfc4791'''. La libreria viene utilizzata dal calendario condiviso incluso nel pacchetto base '''tdepim'''. Trattasi di un pacchetto opzionale. Per compilare '''libcaldav''' si impostino le variabili di ambiente: | ||
+ | <syntaxhighlight lang="bash"> | ||
PREFIX="/usr/local" | PREFIX="/usr/local" | ||
MANDIR="/usr/man" | MANDIR="/usr/man" | ||
+ | </syntaxhighlight> | ||
Si proceda poi imponendo la locazione delle librerie TQt3: | Si proceda poi imponendo la locazione delle librerie TQt3: | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | export QTDIR=${PREFIX_TDE} | ||
+ | </syntaxhighlight> | ||
Si lanci lo script autogen.sh per generare gli script ed i file di configurazione: | Si lanci lo script autogen.sh per generare gli script ed i file di configurazione: | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | sh ./autogen.sh | ||
+ | </syntaxhighlight> | ||
Si esegua quindi la configurazione del codice sorgente passando i parametri standard: | Si esegua quindi la configurazione del codice sorgente passando i parametri standard: | ||
+ | <syntaxhighlight lang="bash"> | ||
CFLAGS="${SLKCFLAGS}" \ | CFLAGS="${SLKCFLAGS}" \ | ||
CXXFLAGS="${SLKCFLAGS}" \ | CXXFLAGS="${SLKCFLAGS}" \ | ||
− | ./ | + | ./configure \ |
− | + | --prefix=${PREFIX} \ | |
− | + | --libdir=${LIBDIR} \ | |
− | + | --mandir=${MANDIR} \ | |
− | + | --build=$ARCH-slackware-linux | |
+ | </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/libcaldav.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/libcaldav.tar.gz indirizzo]. | ||
Line 319: | Line 380: | ||
'''Libcarddav''' è una libreria che implementa il protocollo '''CARDDAV''' utilizzato dal pacchetto base '''tdepim'''. Anche '''libcarddav''' è un pacchetto opzionale che contiene funzionalità aggiuntive. Per compilare '''libcarddav''' si impostino le variabili di ambiente: | '''Libcarddav''' è una libreria che implementa il protocollo '''CARDDAV''' utilizzato dal pacchetto base '''tdepim'''. Anche '''libcarddav''' è un pacchetto opzionale che contiene funzionalità aggiuntive. Per compilare '''libcarddav''' si impostino le variabili di ambiente: | ||
+ | <syntaxhighlight lang="bash"> | ||
PREFIX="/usr/local" | PREFIX="/usr/local" | ||
MANDIR="/usr/man" | MANDIR="/usr/man" | ||
+ | </syntaxhighlight> | ||
E si esporti il percorso delle librerie tqt3: | E si esporti il percorso delle librerie tqt3: | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | export QTDIR=${PREFIX_TDE} | ||
+ | </syntaxhighlight> | ||
Si lanci lo script autogen.sh per generare gli script ed i file di configurazione: | Si lanci lo script autogen.sh per generare gli script ed i file di configurazione: | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | sh ./autogen.sh | ||
+ | </syntaxhighlight> | ||
Si esegua la configurazione del codice sorgente passando i parametri standard: | Si esegua la configurazione del codice sorgente passando i parametri standard: | ||
+ | <syntaxhighlight lang="bash"> | ||
CFLAGS="${SLKCFLAGS}" \ | CFLAGS="${SLKCFLAGS}" \ | ||
CXXFLAGS="${SLKCFLAGS}" \ | CXXFLAGS="${SLKCFLAGS}" \ | ||
− | ./ | + | ./configure \ |
− | + | --prefix=${PREFIX} \ | |
− | + | --libdir=${LIBDIR} \ | |
− | + | --mandir=${MANDIR} \ | |
− | + | --build=$ARCH-slackware-linux | |
+ | </syntaxhighlight> | ||
Per lo specifico pacchetto è necessario '''commentare le righe di codice che si occupano di installare le pagine man''' in quanto rendono un errore facendo fallire tutta la procedura di compilazione. | Per lo specifico pacchetto è necessario '''commentare le righe di codice che si occupano di installare le pagine man''' in quanto rendono un errore facendo fallire tutta la procedura di compilazione. | ||
+ | <syntaxhighlight lang="bash"> | ||
# Add man pages (No man page => Comment the following lines to avoid errors) | # Add man pages (No man page => Comment the following lines to avoid errors) | ||
# if [ -d ${PKG}/${MANDIR} ]; then | # if [ -d ${PKG}/${MANDIR} ]; then | ||
# gzip -9 $PKG/${MANDIR}/man?/* | # gzip -9 $PKG/${MANDIR}/man?/* | ||
# fi | # fi | ||
+ | </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/libcarddav.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/libcarddav.tar.gz indirizzo]. | ||
Line 343: | Line 414: | ||
'''Sip''' è uno strumento che semplifica la creazione di collegamenti, bindings in originale, tra il linguaggio '''Python''' e librerie scritte in '''C''' o '''C++'''. Originariamente scritto per legare Python alle librerie Qt, può essere usato per qualsiasi libreria. Come per altri pacchetti precdentemente descritti, sip può essere compilato impostando alcune variabili d'ambiente: | '''Sip''' è uno strumento che semplifica la creazione di collegamenti, bindings in originale, tra il linguaggio '''Python''' e librerie scritte in '''C''' o '''C++'''. Originariamente scritto per legare Python alle librerie Qt, può essere usato per qualsiasi libreria. Come per altri pacchetti precdentemente descritti, sip può essere compilato impostando alcune variabili d'ambiente: | ||
+ | <syntaxhighlight lang="bash"> | ||
PREFIX="/usr/local" | PREFIX="/usr/local" | ||
MANDIR="/usr/man" | MANDIR="/usr/man" | ||
+ | </syntaxhighlight> | ||
Configurando il percorso ove installare le pagine man: | Configurando il percorso ove installare le pagine man: | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | export MANDIR | ||
+ | </syntaxhighlight> | ||
Aggiungendo alle opzioni per il compilatore alcuni percorsi ove reperire i file include: | Aggiungendo alle opzioni per il compilatore alcuni percorsi ove reperire i file include: | ||
− | SLKCFLAGS="${SLKCFLAGS} | + | <syntaxhighlight lang="bash"> |
+ | SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I/opt/trinity/include" | ||
+ | </syntaxhighlight> | ||
e lanciando infine lo script Python di configurazione: | e lanciando infine lo script Python di configurazione: | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | python configure.py \ | ||
CFLAGS="${SLKCFLAGS}" \ | CFLAGS="${SLKCFLAGS}" \ | ||
CXXFLAGS="${SLKCFLAGS}" | CXXFLAGS="${SLKCFLAGS}" | ||
+ | </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/sip4-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/sip4-tqt.tar.gz indirizzo]. | ||
Line 360: | Line 439: | ||
Dichiarando alcune variabili d'ambiente: | Dichiarando alcune variabili d'ambiente: | ||
+ | <syntaxhighlight lang="bash"> | ||
PREFIX="/usr/local" | PREFIX="/usr/local" | ||
MANDIR="/usr/man" | MANDIR="/usr/man" | ||
+ | </syntaxhighlight> | ||
Imponendo il percorso in cui cercare le librerie TQt: | Imponendo il percorso in cui cercare le librerie TQt: | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | export QTDIR=${PREFIX_TDE} | ||
+ | </syntaxhighlight> | ||
Quindi invocando lo script di configurazione passando dette variabili: | Quindi invocando lo script di configurazione passando dette variabili: | ||
+ | <syntaxhighlight lang="bash"> | ||
CFLAGS="${SLKCFLAGS}" \ | CFLAGS="${SLKCFLAGS}" \ | ||
CXXFLAGS="${SLKCFLAGS}" \ | CXXFLAGS="${SLKCFLAGS}" \ | ||
− | ./ | + | ./configure \ |
− | + | --prefix=${PREFIX} \ | |
− | + | --qtdir=${QTDIR} \ | |
+ | </syntaxhighlight> | ||
Un'ulteriore particolarità consiste nella variabile impiegata per individuare la directory di installazione dei file binari prodotti: '''INSTALL_ROOT''' anzichè '''DESTDIR''', usata nella quasi toatlità degli altri pacchetti. | Un'ulteriore particolarità consiste nella variabile impiegata per individuare la directory di installazione dei file binari prodotti: '''INSTALL_ROOT''' anzichè '''DESTDIR''', usata nella quasi toatlità degli altri pacchetti. | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | make install INSTALL_ROOT=${PKG} | ||
+ | </syntaxhighlight> | ||
Impostata quest'ultima variabile, la compilazione può essere avviata lanciando il comando '''make'''. | Impostata quest'ultima variabile, la compilazione può essere avviata lanciando il comando '''make'''. | ||
Line 379: | Line 466: | ||
'''Tqca-tls''' è un plug-in che aggiunge il supporto alla trasmissione di dati attraverso un canale crittografato ai programmi che utilizzino la '''TQt Cryptographic Architecture'''. Si tratta forse del pacchetto di più facile gestione dato che lo script di configurazione si preoccupa di calcolare ed impostare i valori di tutte le opzioni. Per compilare '''tqca-tls''' è sufficiente impostare il percorso ove reperire le librerie TQt: | '''Tqca-tls''' è un plug-in che aggiunge il supporto alla trasmissione di dati attraverso un canale crittografato ai programmi che utilizzino la '''TQt Cryptographic Architecture'''. Si tratta forse del pacchetto di più facile gestione dato che lo script di configurazione si preoccupa di calcolare ed impostare i valori di tutte le opzioni. Per compilare '''tqca-tls''' è sufficiente impostare il percorso ove reperire le librerie TQt: | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | export QTDIR=${PREFIX} | ||
+ | </syntaxhighlight> | ||
Ed eseguire lo script di configurazione: | Ed eseguire lo script di configurazione: | ||
+ | <syntaxhighlight lang="bash"> | ||
CFLAGS="${SLKCFLAGS}" \ | CFLAGS="${SLKCFLAGS}" \ | ||
CXXFLAGS="${SLKCFLAGS}" \ | CXXFLAGS="${SLKCFLAGS}" \ | ||
− | ./ | + | ./configure \ |
− | + | --qtdir=${QTDIR} | |
+ | </syntaxhighlight> | ||
Come per il pacchetto '''tqca''', l'unica particolarità di '''tqca-tls''' risiede nel nome della variabile utilizzata per specificare la destinazione dei file compilati: '''INSTALL_ROOT''' | Come per il pacchetto '''tqca''', l'unica particolarità di '''tqca-tls''' risiede nel nome della variabile utilizzata per specificare la destinazione dei file compilati: '''INSTALL_ROOT''' | ||
− | + | <syntaxhighlight lang="bash"> | |
+ | make install INSTALL_ROOT=${PKG} | ||
+ | </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/tqca-tls.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/tqca-tls.tar.gz indirizzo]. | ||
Line 393: | Line 486: | ||
Le librerie '''TQt''' forniscono i controlli di base con cui è costruito l'intero ambiente desktop TDE e sono pertanto di fondamentale importanza. La compilazione del pacchetto è onerosa in termini di tempo, ma relativamente facile. Per prima cosa è necessario impostare alcune variabili di ambiente: | Le librerie '''TQt''' forniscono i controlli di base con cui è costruito l'intero ambiente desktop TDE e sono pertanto di fondamentale importanza. La compilazione del pacchetto è onerosa in termini di tempo, ma relativamente facile. Per prima cosa è necessario impostare alcune variabili di ambiente: | ||
− | + | <syntaxhighlight lang="bash"> | |
− | + | export LD_LIBRARY_PATH=/usr/lib${LIBDIRSUFFIX}:${TMP}/tmp-${PRGNAM}/${DIR_SRC}/lib:${TMP}/tmp-${PRGNAM}/build/lib | |
+ | export QTDIR=${PREFIX} | ||
+ | </syntaxhighlight> | ||
La variabile '''LD_LIBRARY_PATH''' deve essere assegnata con cura in quanto deve contenere il percorso ove verranno salvati i file binari intermedi utilizzati negli stadi avanzati del processo. Omettendo tale percorso la compilazione fallirà rendendo errore. | La variabile '''LD_LIBRARY_PATH''' deve essere assegnata con cura in quanto deve contenere il percorso ove verranno salvati i file binari intermedi utilizzati negli stadi avanzati del processo. Omettendo tale percorso la compilazione fallirà rendendo errore. | ||
Data la complessità delle librerie, lo script '''configure''' deve essere invocato con una riga di comando fornita di molte opzioni: | Data la complessità delle librerie, lo script '''configure''' deve essere invocato con una riga di comando fornita di molte opzioni: | ||
+ | <syntaxhighlight lang="bash"> | ||
LDFLAGS="${SLKLDFLAGS}" \ | LDFLAGS="${SLKLDFLAGS}" \ | ||
CFLAGS="${SLKCFLAGS}" \ | CFLAGS="${SLKCFLAGS}" \ | ||
CXXFLAGS="${SLKCFLAGS}" \ | CXXFLAGS="${SLKCFLAGS}" \ | ||
− | ../${DIR_SRC}/ | + | ../${DIR_SRC}/configure \ |
− | + | -cups \ | |
− | + | -dlopen-opengl \ | |
− | + | -enable-opengl \ | |
− | + | -I/usr/include/freetype2/freetype \ | |
− | + | -I/usr/include/mysql \ | |
− | + | -inputmethod \ | |
− | + | -ipv6 \ | |
− | + | -L/usr/lib${LIBDIRSUFFIX} \ | |
− | + | -lfontconfig \ | |
− | + | -libdir ${PREFIX}/lib${LIBDIRSUFFIX} \ | |
− | + | -nis \ | |
− | + | -no-g++-exceptions \ | |
− | + | -no-pch \ | |
− | + | -platform linux-g++ \ | |
− | + | -plugin-imgfmt-mng \ | |
− | + | -plugin-sql-mysql \ | |
− | + | -plugin-sql-sqlite \ | |
− | + | -plugin-style-cde \ | |
− | + | -plugin-style-compact \ | |
− | + | -plugin-style-motifplus \ | |
− | + | -plugin-style-platinum \ | |
− | + | -plugin-style-sgi \ | |
− | + | -plugin-style-windows \ | |
− | + | -prefix ${PREFIX} \ | |
− | + | -qt-gif \ | |
− | + | -qt-imgfmt-jpeg \ | |
− | + | -qt-imgfmt-mng \ | |
− | + | -qt-imgfmt-png \ | |
− | + | -qt-style-motif \ | |
− | + | -release \ | |
− | + | -R${TMP}/tmp-${PRGNAM}/lib \ | |
− | + | -shared \ | |
− | + | -sm \ | |
− | + | -stl \ | |
− | + | -system-libjpeg \ | |
− | + | -system-libmng \ | |
− | + | -system-libpng \ | |
− | + | -system-zlib \ | |
− | + | -thread \ | |
− | + | -tablet \ | |
− | + | -v \ | |
− | + | -xcursor \ | |
− | + | -xft \ | |
− | + | -xinerama \ | |
− | + | -xkb \ | |
− | + | -xrandr \ | |
− | + | -xrender \ | |
− | + | -xshape | |
+ | </syntaxhighlight> | ||
Ed è necessario lanciare due volte il comando '''make'''. La seconda volta perchè si occupoi dei link simbolici ed altri particolari: | Ed è necessario lanciare due volte il comando '''make'''. La seconda volta perchè si occupoi dei link simbolici ed altri particolari: | ||
− | + | <syntaxhighlight lang="bash"> | |
− | + | make VERBOSE=1 | |
− | + | make install INSTALL_ROOT=${PKG} | |
− | + | make -i symlinks sub-src sub-tool | |
+ | make install INSTALL_ROOT=${PKG} | ||
+ | </syntaxhighlight> | ||
Sono infine richieste alcune operazioni per aggiungere link simbolici, script di configurazione ed alcuni file necessari affinchè tutto funzioni senza intoppi: | Sono infine richieste alcune operazioni per aggiungere link simbolici, script di configurazione ed alcuni file necessari affinchè tutto funzioni senza intoppi: | ||
+ | <syntaxhighlight lang="bash"> | ||
# Some configure scripts seem unable to find lib64 => Create a symlink to lib | # Some configure scripts seem unable to find lib64 => Create a symlink to lib | ||
if [[ "x86_64" = "${ARCH}" ]]; then | if [[ "x86_64" = "${ARCH}" ]]; then | ||
Line 501: | Line 601: | ||
chmod 755 ${PKG}/etc/profile.d/* | chmod 755 ${PKG}/etc/profile.d/* | ||
+ | </syntaxhighlight> | ||
Come sempre 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/tqt3.tar.gz indirizzo]. | Come sempre 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/tqt3.tar.gz indirizzo]. | ||
Line 506: | Line 607: | ||
La '''Trinity Qt Interface''' è una libreria che lavora come strato di astrazione tra TQt e Trinity. Tale strato consentirebbe di utilizzare applicazioni poggianti sia su TQt che Qt4 in maniera trasparente garantendo la coesistenza dei due ambienti. Al momento '''TQtinterface''' deve essere installata nella directory '''/usr''' per funzionare correttamente. Per compilare il pacchetto si configurino alcune variabili di ambiente: | La '''Trinity Qt Interface''' è una libreria che lavora come strato di astrazione tra TQt e Trinity. Tale strato consentirebbe di utilizzare applicazioni poggianti sia su TQt che Qt4 in maniera trasparente garantendo la coesistenza dei due ambienti. Al momento '''TQtinterface''' deve essere installata nella directory '''/usr''' per funzionare correttamente. Per compilare il pacchetto si configurino alcune variabili di ambiente: | ||
+ | <syntaxhighlight lang="bash"> | ||
PREFIX="/usr" | PREFIX="/usr" | ||
MANDIR="/usr/man" | MANDIR="/usr/man" | ||
+ | </syntaxhighlight> | ||
Si invochi quindi '''[http://www.cmake.org/ cmake]''' con opportune opzioni di configurazione tra cui vale la pena citare '''-DQT_VERSION=3''': | Si invochi quindi '''[http://www.cmake.org/ cmake]''' con opportune opzioni di configurazione tra cui vale la pena citare '''-DQT_VERSION=3''': | ||
− | + | <syntaxhighlight lang="bash"> | |
− | + | cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \ | |
− | + | -DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \ | |
− | + | -DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \ | |
− | + | -DCMAKE_INSTALL_PREFIX=${PREFIX} \ | |
− | + | -DLIB_SUFFIX=${LIBDIRSUFFIX} \ | |
− | + | -DMAN_INSTALL_DIR=${MANDIR} \ | |
− | + | -DQT_VERSION=3 \ | |
− | + | -DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \ | |
+ | -DBUILD_ALL=ON | ||
+ | </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/tqtinterface.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/tqtinterface.tar.gz indirizzo]. | ||
Line 529: | Line 634: | ||
Link esterni | Link esterni | ||
+ | |||
---- | ---- | ||
Line 537: | Line 643: | ||
---- | ---- | ||
− | + | {{footer_it | link_page=TDE_14.0.0_prerequisites}} |
Latest revision as of 14:40, 21 March 2022
Benvenuti nella pagina Wiki di Simone Giustetti.
Lingue: English - Italiano
Prerequisiti
Trinity Desktop Environment 14.0.0
I pacchetti raggruppati sotto il nome generico Prerequisiti includono tutte le librerie base utilizzate dall'ambiente desktop ed alcuni componenti addizionali necessari per attivare funzionalità avanzate. Le librerie base includono ovviamente TQt3, la versione di Qt sviluppata e supportata dal progetto Trinity, tqtinterface, libreria che aggiunge un livello di astrazione tra TQt e TDE, arts, il gestore per gli effetti ed i flussi sonori in TDE, dbus-tqt e dbus-1-tqt, che collegano l'ambiente desktop al sottosistema di gestione dello hardware. Le rimanenti librerie: avahi-tqt, libart-lgpl, libcaldav, libcarddav, python-tqt, sip4-tqt, tqca, tqca-tls e tqscintilla sono opzionali. L'ambiente può essere compilato senza di esse rinunciando ad alcune utili funzionalità.
Sistema di Compilazione
Uno degli obiettivi del progetto Trinity consiste nel migrare il sistema di compilazione dei pacchetti da autotools a cmake. Una migrazione ancora in corso, conclusa solo per una parte dei pacchetti elencati in precedenza. Segue l'elenco dei pacchetti ed il sistema di compilazione adottato per ciascuno di essi:
Pacchetto | Tipologia di Pacchetto | Sistema |
---|---|---|
arts | Base | Cmake |
avahi-tqt | Opzionale | Autotools |
dbus-1-tqt | Base | Cmake |
dbus-tqt | Base | Cmake |
libart-lgpl | Opzionale | Autotools |
libcaldav | Opzionale | Autotools |
libcarddav | Opzionale | Autotools |
python-tqt | Opzionale | Script configure.py Richiede un interprete Python |
sip4-tqt | Opzionale | Script configure.py Richiede un interprete Python |
tqca | Opzionale | Autotools |
tqca-tls | Opzionale | Autotools |
tqscintilla | Opzionale | Script qscintilla.pro per qmake Richiede che siano installate le librerie TQt3 |
tqt3 | Base | Autotools |
tqtinterface | Base | Cmake |
Da cui emerge l'esigenza di avere almeno quattro modelli per lo script di compilazione. La struttura dei modelli sarà per quanto possibile uniforme, ma sicuramente interverranno differenze nella invocazione del processo di compilazione sia per l'impiego di un diverso sistema di compilazione, sia per la presenza di opzioni specifiche per ogni pacchetto. Di seguito verrà descritta la struttura generica di uno script SlackBuild, le opzioni generali ed infine quelle specifiche per ogni pacchetto.
Struttura di uno Script
Gli script per la versione 3.5.13.2 di TDE (Prerequisiti) sono stati modificati ed aggiornati per l'ultimo rilascio. La struttura è rimasta pressochè invariata:
- Introduzione in cui viene descritto lo scopo del file e la licenza d'uso.
- Caricamento dei file esterni contenenti i parametri di compilazione globali e quelli locali:
if [ -r ../../TDE.options ]; then
. ../../TDE.options
fi
PREFIX_TDE=${PREFIX}
if [ -r ./local.options ]; then
. ./local.options
fi
- Impostazione delle variabili globali dello script:
ARCHIVE_FORMAT=${ARCHIVE_FORMAT:-"tar.bz2"}
BUILD=${BUILD:-"1"}
LD_LIBRARY_PATH="" # Will be defined later on
PRGNAM="tqtinterface"
PREFIX=${PREFIX:-"/usr"}
MANDIR=${MANDIR:-${PREFIX}/man}
SOURCE_SUBDIR=${SOURCE_SUBDIR:-"dependencies"}
SRCVER=${SRCVER:-"R14.0.0"}
TAG=${TAG:-"sg"}
TAR_OPTION=${TAR_OPTION:-"-xjvf"}
VERSION=$(echo ${SRCVER} | tr '-' '.')
DOCS="AUTHORS COPYING HOW.TO.BUILD NAMING README TODO TRINITY.RELEASE tqtinterface.lsm"
- Sono state aggiunte variabili rispetto alla versione 3.5.13.2 quali il formato dell'archivio e le opzioni da passare al programma tar. Si spera che queste possano semplificare il processo di compilazione una volta stabilizzato il formato con cui viene rilasciato il codice sorgente.
- Determinazione dell'architettura per cui si compila il pacchetto ed impostazione dei parametri per il compilatore, il linker, le librerie, ecc.:
if [ -z "${MARCH}" ]; then
MARCH=`uname -m`
fi
if [ -z "${ARCH}" ]; then
case "${MARCH}" in
i?86)
export ARCH=i486
;;
arm*)
export ARCH=arm
;;
*)
export ARCH=${MARCH}
;;
esac
fi
- Il codice è stato aggiornato rispetto alla versione precedente in modo da usare i valori impostati attraverso i parametri globali consentendo l'uso degli script anche per ambienti in chroot.
- Creazione delle directory utilizzate durante la procedura:
mkdir -p ${TMP}/tmp-${PRGNAM} # Location to build the source
rm -rf ${TMP}/tmp-${PRGNAM}/* # Remove the remnants of previous build and continue
mkdir -p ${PKG} # Place for the package to be built
rm -rf ${PKG}/* # We always erase old package's contents
mkdir -p ${OUTPUT} # Place for the package to be saved
- Assegnazione dei permessi ai file:
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
- Configurazione, compilazione ed installazione del pacchetto.
- Aggiunta di documentazione, link, file di esempio e tutto quanto serva a rendere funzionale il pacchetto:
mkdir -p ${PKG}/usr/doc/${PRGNAM}"-"$VERSION
cp -a ${DOCS} ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}
chown -R root:root ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}
find ${PKG}/usr/doc -type f -exec chmod 644 {} \;
# Add a package description.
mkdir -p ${PKG}/install
cat ${SRCDIR}/slack-desc > ${PKG}/install/slack-desc
# Set sane permissions for the include files.
if [ -d ${PKG}/${PREFIX}/include ]; then
find ${PKG}/${PREFIX}/include -type f -exec chmod 0644 {} \;
fi
- Creazione del pacchetto.
Opzioni Generali
Le opzioni di compilazione generiche varieranno solo in funzione del sistema di compilazione adottato. Per i pacchetti che utilizzano Autotools le fasi consistono in:
- Ricostruzione dei file utilizzati da Autoconf / Automake:
cp -Rp /usr/share/aclocal/libtool.m4 <pkg_path_build>/admin/libtool.m4.in
cp -Rp <path to your systems ltmain.sh file> admin/ltmain.sh
make -f admin/Makefile.common
- Impostazione delle opzioni per il compilatore ed il linker, impostazione dei percorsi per i file include, le librerie ed i manuali:
export LD_LIBRARY_PATH=${PREFIX}/lib${LIBDIRSUFFIX}:${PREFIX}/lib${LIBDIRSUFFIX}/trinity:${LD_LIBRARY_PATH}
export LIBDIR=${PREFIX}/lib${LIBDIRSUFFIX}
export MANDIR
export PATH=${PREFIX}/bin:${PATH}
export PKG_CONFIG_PATH=:${PREFIX}/lib${LIBDIRSUFFIX}/pkgconfig:${PKG_CONFIG_PATH}
export PREFIX
export QTDIR=${PREFIX}
export SYSCONFDIR=/etc/trinity
# Enable only one of the following:
# export DEBUG_AUTOTOOL_OPT="--enable-debug=full"
export DEBUG_AUTOTOOL_OPT="--disable-debug"
- Configurazione del codice sorgente:
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
./configure \
--prefix=${PREFIX} \
--libdir=${LIBDIR} \
--mandir=${MANDIR} \
--build=$ARCH-slackware-linux \
2>&1 | tee -a ${OUTPUT}/${PRGNAM}_configure.log
- Compilazione ed installazione:
make VERBOSE=1 2>&1 | tee ${OUTPUT}/${PRGNAM}_make.log
make install DESTDIR=${PKG} 2>&1 | tee ${OUTPUT}/${PRGNAM}_install.log
Per i pacchetti che utilizzano cmake le fasi consistono in:
- Pulizia della cache di cmake:
find . -name CMakeCache.txt -exec rm {} \;
- Impostazione delle opzioni per il compilatore ed il linker, impostazione dei percorsi per i file include, le librerie ed i manuali:
export LD_LIBRARY_PATH=${PREFIX}/lib${LIBDIRSUFFIX}:${PREFIX}/lib${LIBDIRSUFFIX}/trinity:${LD_LIBRARY_PATH}
export LIBDIR=${PREFIX}/lib${LIBDIRSUFFIX}
export MANDIR
export PATH=${PREFIX}/bin:${PATH}
export PKG_CONFIG_PATH=${PREFIX}/lib${LIBDIRSUFFIX}/pkgconfig:${PKG_CONFIG_PATH}
export PREFIX
export QTDIR=${PREFIX}
export SYSCONFDIR=/etc/trinity
# Enable only one of the following:
# export DEBUG_AUTOTOOL_OPT="--disable-debug"
export DEBUG_CMAKE_OPT=""
- Configurazione del codice sorgente:
cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
-DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
-DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
-DCMAKE_INSTALL_PREFIX=${PREFIX} \
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DMAN_INSTALL_DIR=${MANDIR} \
-DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
-DBUILD_ALL=ON \
2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log
- Compilazione ed installazione:
make VERBOSE=1 2>&1 | tee ${OUTPUT}/${PRGNAM}_make.log
make install DESTDIR=${PKG} 2>&1 | tee ${OUTPUT}/${PRGNAM}_install.log
I pacchetti python-tqt e sip4-tqt utilizzano script in linguaggio Python per configurare il codice sorgente. Entrambi gli script richiedono solo la configurazione delle opzioni per il compilatore ed il linker.
- Configurazione del codice sorgente:
python configure.py \
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log
- Compilazione ed installazione:
make VERBOSE=1 2>&1 | tee ${OUTPUT}/${PRGNAM}_make.log
make install DESTDIR=${PKG} 2>&1 | tee ${OUTPUT}/${PRGNAM}_install.log
Infine tqscintilla, l'unico pacchetto ad utilizzare tqmake, richiede anch'esso la definizione dei parametri per il compilatore ed il linker.
- Configurazione del codice sorgente:
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS} -fno-exceptions" \
tqmake qscintilla.pro \
2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log
- Compilazione ed installazione:
make VERBOSE=1 2>&1 | tee ${OUTPUT}/${PRGNAM}_make.log
make install INSTALL_ROOT=${PKG} 2>&1 | tee ${OUTPUT}/${PRGNAM}_install.log
Opzioni Specifiche
Avendo esposto quali siano le linee generali impiegate per configurare e compilare i pacchetti appartenenti al gruppo dei prerequisiti, verranno di seguito presentate le opzioni specifiche dei singoli pacchetti ed eventuali accorgimenti necessari per eseguire una compilazione corretta. Verrà inoltre fornito un link ad uno script SlackBuild per ogni pacchetto in modo da aiutare chi volesse cimentarsi nell'impresa.
ARTS
Analog Real Time Synthesizer è una libreria audio che fornisce un sound server integrato, un mixer per i flussi sonori ed alcune applicazioni di configurazione. Utilizzata sin dai tempi di KDE 2, Arts è stata rimpiazzata da Phonon in KDE 4 ed adottata da TDE. Per poter compilare Arts è necessario impostare l'opzione -DCMAKE_SKIP_RPATH="OFF" in fase di configurazione. Segue la riga con cui è invocato cmake:
cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
-DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
-DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
-DCMAKE_INSTALL_PREFIX=${PREFIX} \
-DCMAKE_SKIP_RPATH="OFF" \
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DMAN_INSTALL_DIR=${MANDIR} \
-DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
-DBUILD_ALL=ON
Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.
AVAHI-TQT
Una libreria che aggiunge funzioni di ricerca DNS ai pacchetti base tdebase e tdelibs. Per compilare correttamente richiede come dipendenza la libreria avahi che non fa parte della distribuzione Slackware standard. È possibile reperire uno script di compilazione per avahi presso il sito slackbuilds.org. Una volta installata la dipendenza, sarà possibile compilare avahi-tqt impostando le variabili di ambiente:
PREFIX="/usr/local"
MANDIR="/usr/man"
Esportando il percorso di installazione delle librerie TQt3:
export QTDIR=${PREFIX_TDE}
Lanciando lo script autogen.sh perchè generi gli script ed i file di configurazione:
sh ./autogen.sh
Ed infine eseguendo la configurazione del codice sorgente passando i parametri
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
./configure \
--prefix=${PREFIX} \
--libdir=${LIBDIR} \
--mandir=${MANDIR} \
--build=$ARCH-slackware-linux
Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo. Nota bene: lo script è fornito solo a titolo di riferimento. Abitualmente non abilito funzioni o pacchetti opzionali potendo farne a meno. Non avendo installato avahi non ho potuto verificare l'efficacia dello script Slackbuild, ma solo la forma e la sintassi.
DBUS-TQT
Librerie di collegamento al demone dbus utilizzato nelle moderne distribuzioni Linux per la gestione dello hardware e per consentire alle applicazioni di comunicare e scambiarsi messaggi. Dbus ha sostituito HAL. Per configurare e compilare il pacchetto utilizzando cmake è richiesto:
Pulire la chache di cmake:
find . -name CMakeCache.txt -exec rm {} \;
Passare a cmake l'opzione -DCMAKE_SKIP_RPATH="OFF". L'invocazione completa di cmake risulterà:
cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
-DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
-DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
-DCMAKE_INSTALL_PREFIX=${PREFIX} \
-DCMAKE_SKIP_RPATH="OFF" \
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DMAN_INSTALL_DIR=${MANDIR} \
-DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
-DBUILD_ALL=ON
Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.
DBUS-1-TQT
Librerie complementari a dbus-tqt. Aggiungono un livello di astrazione tra il demone dbus e le librerie TQt3. Il pacchetto può essere configurato utilizzando cmake. Per farlo:
Pulire la chache ci cmake:
find . -name CMakeCache.txt -exec rm {} \;
Passare a cmake l'opzione -DCMAKE_SKIP_RPATH="OFF". L'invocazione completa di cmake risulterà:
cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
-DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
-DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
-DCMAKE_INSTALL_PREFIX=${PREFIX} \
-DCMAKE_SKIP_RPATH="OFF" \
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DMAN_INSTALL_DIR=${MANDIR} \
-DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
-DBUILD_ALL=ON
Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.
LIBART-LGPL
Libart è una libreria per la gestione ad alte prestazioni della grafica 2-D utilizzata da Gnome, KDE e TDE. La versione della libreria distribuita con TDE differisce da quella standard inclusa in numerose distribuzioni Linux. Si consiglia di sostituire l'eventuale versione installata con quella TDE. Per compilare libart è sufficiente imporre alcune variabili di ambiente per i percorsi:
PREFIX="/usr"
MANDIR="/usr/man"
Ed eseguire la configurazione:
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
./configure \
--prefix=${PREFIX} \
--libdir=${LIBDIR} \
--build=$ARCH-slackware-linux
Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.
LIBCALDAV
Libcaldav è una libreria che implementa il protocollo CALDAV lato client come definito nel documento rfc4791. La libreria viene utilizzata dal calendario condiviso incluso nel pacchetto base tdepim. Trattasi di un pacchetto opzionale. Per compilare libcaldav si impostino le variabili di ambiente:
PREFIX="/usr/local"
MANDIR="/usr/man"
Si proceda poi imponendo la locazione delle librerie TQt3:
export QTDIR=${PREFIX_TDE}
Si lanci lo script autogen.sh per generare gli script ed i file di configurazione:
sh ./autogen.sh
Si esegua quindi la configurazione del codice sorgente passando i parametri standard:
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
./configure \
--prefix=${PREFIX} \
--libdir=${LIBDIR} \
--mandir=${MANDIR} \
--build=$ARCH-slackware-linux
Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.
LIBCARDDAV
Libcarddav è una libreria che implementa il protocollo CARDDAV utilizzato dal pacchetto base tdepim. Anche libcarddav è un pacchetto opzionale che contiene funzionalità aggiuntive. Per compilare libcarddav si impostino le variabili di ambiente:
PREFIX="/usr/local"
MANDIR="/usr/man"
E si esporti il percorso delle librerie tqt3:
export QTDIR=${PREFIX_TDE}
Si lanci lo script autogen.sh per generare gli script ed i file di configurazione:
sh ./autogen.sh
Si esegua la configurazione del codice sorgente passando i parametri standard:
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
./configure \
--prefix=${PREFIX} \
--libdir=${LIBDIR} \
--mandir=${MANDIR} \
--build=$ARCH-slackware-linux
Per lo specifico pacchetto è necessario commentare le righe di codice che si occupano di installare le pagine man in quanto rendono un errore facendo fallire tutta la procedura di compilazione.
# Add man pages (No man page => Comment the following lines to avoid errors)
# if [ -d ${PKG}/${MANDIR} ]; then
# gzip -9 $PKG/${MANDIR}/man?/*
# fi
Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.
SIP4-TQT
Sip è uno strumento che semplifica la creazione di collegamenti, bindings in originale, tra il linguaggio Python e librerie scritte in C o C++. Originariamente scritto per legare Python alle librerie Qt, può essere usato per qualsiasi libreria. Come per altri pacchetti precdentemente descritti, sip può essere compilato impostando alcune variabili d'ambiente:
PREFIX="/usr/local"
MANDIR="/usr/man"
Configurando il percorso ove installare le pagine man:
export MANDIR
Aggiungendo alle opzioni per il compilatore alcuni percorsi ove reperire i file include:
SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I/opt/trinity/include"
e lanciando infine lo script Python di configurazione:
python configure.py \
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}"
Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.
TQCA
Una ulteriore libreria opzionale, Tqca (TQt Cryptographic Architecture), contiene una API di facile utilizzo per aggiungere funzioni crittografiche al Trinity Desktop Environment. La libreria di piccole dimensioni può essere compilata utilizzando alcuni accorgimenti specifici del pacchetto.
Dichiarando alcune variabili d'ambiente:
PREFIX="/usr/local"
MANDIR="/usr/man"
Imponendo il percorso in cui cercare le librerie TQt:
export QTDIR=${PREFIX_TDE}
Quindi invocando lo script di configurazione passando dette variabili:
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
./configure \
--prefix=${PREFIX} \
--qtdir=${QTDIR} \
Un'ulteriore particolarità consiste nella variabile impiegata per individuare la directory di installazione dei file binari prodotti: INSTALL_ROOT anzichè DESTDIR, usata nella quasi toatlità degli altri pacchetti.
make install INSTALL_ROOT=${PKG}
Impostata quest'ultima variabile, la compilazione può essere avviata lanciando il comando make.
Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.
TQCA-TLS
Tqca-tls è un plug-in che aggiunge il supporto alla trasmissione di dati attraverso un canale crittografato ai programmi che utilizzino la TQt Cryptographic Architecture. Si tratta forse del pacchetto di più facile gestione dato che lo script di configurazione si preoccupa di calcolare ed impostare i valori di tutte le opzioni. Per compilare tqca-tls è sufficiente impostare il percorso ove reperire le librerie TQt:
export QTDIR=${PREFIX}
Ed eseguire lo script di configurazione:
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
./configure \
--qtdir=${QTDIR}
Come per il pacchetto tqca, l'unica particolarità di tqca-tls risiede nel nome della variabile utilizzata per specificare la destinazione dei file compilati: INSTALL_ROOT
make install INSTALL_ROOT=${PKG}
Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.
TQT3
Le librerie TQt forniscono i controlli di base con cui è costruito l'intero ambiente desktop TDE e sono pertanto di fondamentale importanza. La compilazione del pacchetto è onerosa in termini di tempo, ma relativamente facile. Per prima cosa è necessario impostare alcune variabili di ambiente:
export LD_LIBRARY_PATH=/usr/lib${LIBDIRSUFFIX}:${TMP}/tmp-${PRGNAM}/${DIR_SRC}/lib:${TMP}/tmp-${PRGNAM}/build/lib
export QTDIR=${PREFIX}
La variabile LD_LIBRARY_PATH deve essere assegnata con cura in quanto deve contenere il percorso ove verranno salvati i file binari intermedi utilizzati negli stadi avanzati del processo. Omettendo tale percorso la compilazione fallirà rendendo errore. Data la complessità delle librerie, lo script configure deve essere invocato con una riga di comando fornita di molte opzioni:
LDFLAGS="${SLKLDFLAGS}" \
CFLAGS="${SLKCFLAGS}" \
CXXFLAGS="${SLKCFLAGS}" \
../${DIR_SRC}/configure \
-cups \
-dlopen-opengl \
-enable-opengl \
-I/usr/include/freetype2/freetype \
-I/usr/include/mysql \
-inputmethod \
-ipv6 \
-L/usr/lib${LIBDIRSUFFIX} \
-lfontconfig \
-libdir ${PREFIX}/lib${LIBDIRSUFFIX} \
-nis \
-no-g++-exceptions \
-no-pch \
-platform linux-g++ \
-plugin-imgfmt-mng \
-plugin-sql-mysql \
-plugin-sql-sqlite \
-plugin-style-cde \
-plugin-style-compact \
-plugin-style-motifplus \
-plugin-style-platinum \
-plugin-style-sgi \
-plugin-style-windows \
-prefix ${PREFIX} \
-qt-gif \
-qt-imgfmt-jpeg \
-qt-imgfmt-mng \
-qt-imgfmt-png \
-qt-style-motif \
-release \
-R${TMP}/tmp-${PRGNAM}/lib \
-shared \
-sm \
-stl \
-system-libjpeg \
-system-libmng \
-system-libpng \
-system-zlib \
-thread \
-tablet \
-v \
-xcursor \
-xft \
-xinerama \
-xkb \
-xrandr \
-xrender \
-xshape
Ed è necessario lanciare due volte il comando make. La seconda volta perchè si occupoi dei link simbolici ed altri particolari:
make VERBOSE=1
make install INSTALL_ROOT=${PKG}
make -i symlinks sub-src sub-tool
make install INSTALL_ROOT=${PKG}
Sono infine richieste alcune operazioni per aggiungere link simbolici, script di configurazione ed alcuni file necessari affinchè tutto funzioni senza intoppi:
# Some configure scripts seem unable to find lib64 => Create a symlink to lib
if [[ "x86_64" = "${ARCH}" ]]; then
ln -sf ${PREFIX}/lib${LIBDIRSUFFIX} ${PKG}/${PREFIX}/lib
fi
# Adding a link to the include folder
mkdir -p ${PKG}/usr/include
ln -sf ${PREFIX}/include ${PKG}/usr/include/${PRGNAM}
# Move the qt-mt.pc in the pkgconfig directory
if [[ ! -f ${PKG}/${PREFIX}/lib${LIBDIRSUFFIX}/pkgconfig/tqt-mt.pc ]]; then
mkdir -p ${PKG}/${PREFIX}/lib${LIBDIRSUFFIX}/pkgconfig
mv ${PKG}/${PREFIX}/lib${LIBDIRSUFFIX}/tqt-mt.pc ${PKG}/${PREFIX}/lib${LIBDIRSUFFIX}/pkgconfig/tqt-mt.pc
fi
# Link for qt-mt.pc to the /usr/lib[64] directory
mkdir -p ${PKG}/usr/lib${LIBDIRSUFFIX}/pkgconfig
ln -sf ${PREFIX}/lib${LIBDIRSUFFIX}/pkgconfig/tqt-mt.pc ${PKG}/usr/lib${LIBDIRSUFFIX}/pkgconfig/tqt-mt.pc
# Fix some bad links
if [[ -d ${PKG}/${PREFIX}/lib${LIBDIRSUFFIX}/${PRGNAM}/mkspecs/linux-g++ ]]; then
if [[ -L ${PKG}/${PREFIX}/lib${LIBDIRSUFFIX}/${PRGNAM}/mkspecs/linux-g++/linux-g++ ]]; then
unlink ${PKG}/${PREFIX}/lib${LIBDIRSUFFIX}/${PRGNAM}/mkspecs/linux-g++/linux-g++
fi
ln -sf ${PREFIX}/lib${LIBDIRSUFFIX}/${PRGNAM}/mkspecs/linux-g++ ${PKG}/${PREFIX}/lib${LIBDIRSUFFIX}/${PRGNAM}/mkspecs/linux-g++/linux-g++
if [[ -L ${PKG}/${PREFIX}/lib${LIBDIRSUFFIX}/${PRGNAM}/mkspecs/default ]]; then
unlink ${PKG}/${PREFIX}/lib${LIBDIRSUFFIX}/${PRGNAM}/mkspecs/default
fi
ln -sf ${PREFIX}/lib${LIBDIRSUFFIX}/${PRGNAM}/mkspecs/linux-g++ ${PKG}/${PREFIX}/lib${LIBDIRSUFFIX}/${PRGNAM}/mkspecs/default
elif [[ -d ${PKG}/${PREFIX}/mkspecs/linux-g++ ]]; then
if [[ -L ${PKG}/${PREFIX}/mkspecs/linux-g++/linux-g++ ]]; then
unlink ${PKG}/${PREFIX}/mkspecs/linux-g++/linux-g++
fi
ln -sf ${PREFIX}/mkspecs/linux-g++ ${PKG}${PREFIX}/mkspecs/linux-g++/linux-g++
if [[ -L ${PKG}/${PREFIX}/mkspecs/default ]]; then
unlink ${PKG}/${PREFIX}/mkspecs/default
fi
ln -sf ${PREFIX}/mkspecs/linux-g++ ${PKG}/${PREFIX}/mkspecs/default
fi
# Create and populate the profile.d directory
mkdir -p ${PKG}/etc/profile.d
# Put profile.d scripts in package TQT installation path.
cat ${SRCDIR}/profile.d/tqt3.sh | sed -e "s:TDE_PREFIX:${PREFIX}:" > ${PKG}/etc/profile.d/tqt3.sh
cat ${SRCDIR}/profile.d/tqt3.csh | sed -e "s:TDE_PREFIX:${PREFIX}:" > ${PKG}/etc/profile.d/tqt3.csh
chmod 755 ${PKG}/etc/profile.d/*
Come sempre un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.
TQTINTERFACE
La Trinity Qt Interface è una libreria che lavora come strato di astrazione tra TQt e Trinity. Tale strato consentirebbe di utilizzare applicazioni poggianti sia su TQt che Qt4 in maniera trasparente garantendo la coesistenza dei due ambienti. Al momento TQtinterface deve essere installata nella directory /usr per funzionare correttamente. Per compilare il pacchetto si configurino alcune variabili di ambiente:
PREFIX="/usr"
MANDIR="/usr/man"
Si invochi quindi cmake con opportune opzioni di configurazione tra cui vale la pena citare -DQT_VERSION=3:
cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
-DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
-DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
-DCMAKE_INSTALL_PREFIX=${PREFIX} \
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DMAN_INSTALL_DIR=${MANDIR} \
-DQT_VERSION=3 \
-DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
-DBUILD_ALL=ON
Un archivio contenente lo script SlackBuild completo ed i file di configurazione può essere scaricato dal seguente indirizzo.
Conclusioni
Nel corso del presente articolo sono state presentate alcune considerazioni inerenti la compilazione dei pacchetti etichettati come Prerequisiti per il funzionamento del Trinity Desktop Environment. Sono state esposte le linee guida generali adottate per il progetto e quelle specifiche per singolo pacchetto. Sono infine 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.
Per commenti, consigli, domande inviate una e-mail all'indirizzo studiosg [chiocciola] giustetti [punto] net.
Link esterni
- Home page del progetto TDE (En)
- Home page di Slackware (En)
- Home page del progetto SlackBuilds.org (En)
Lingue: English - Italiano