Difference between revisions of "TDE 14.0.0 prerequisiti"

From Studiosg
Jump to navigationJump to search
m
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
Benvenuti nella pagina Wiki di Simone Giustetti.
+
{{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}}
 
 
 
 
Lingue: [http://www.giustetti.net/wiki/index.php?title=TDE_14.0.0_prerequisites English] - '''Italiano'''
 
 
 
----
 
  
 
== '''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:-"${PREFIX}/man"}
+
   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 &egrave; 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 &egrave; 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''':
   '''cp''' ''-Rp'' /usr/share/aclocal/libtool.m4 <pkg_path_build>/admin/libtool.m4.in
+
<syntaxhighlight lang="bash">
   '''cp''' ''-Rp'' <path to your system's ltmain.sh file> admin/ltmain.sh
+
   cp -Rp /usr/share/aclocal/libtool.m4 <pkg_path_build>/admin/libtool.m4.in
   '''make''' ''-f'' admin/Makefile.common
+
   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:
   '''export''' LD_LIBRARY_PATH=${PREFIX}/lib${LIBDIRSUFFIX}:${PREFIX}/lib${LIBDIRSUFFIX}/trinity:${LD_LIBRARY_PATH}
+
<syntaxhighlight lang="bash">
   '''export''' LIBDIR=${PREFIX}/lib${LIBDIRSUFFIX}
+
   export LD_LIBRARY_PATH=${PREFIX}/lib${LIBDIRSUFFIX}:${PREFIX}/lib${LIBDIRSUFFIX}/trinity:${LD_LIBRARY_PATH}
   '''export''' MANDIR
+
   export LIBDIR=${PREFIX}/lib${LIBDIRSUFFIX}
   '''export''' PATH=${PREFIX}/bin:${PATH}
+
   export MANDIR
   '''export''' PKG_CONFIG_PATH=:${PREFIX}/lib${LIBDIRSUFFIX}/pkgconfig:${PKG_CONFIG_PATH}
+
   export PATH=${PREFIX}/bin:${PATH}
   '''export''' PREFIX
+
   export PKG_CONFIG_PATH=:${PREFIX}/lib${LIBDIRSUFFIX}/pkgconfig:${PKG_CONFIG_PATH}
   '''export''' QTDIR=${PREFIX}
+
   export PREFIX
   '''export''' SYSCONFDIR=/etc/trinity
+
   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''"
+
   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''' \
+
   ./configure \
       ''--prefix=''${PREFIX} \
+
       --prefix=${PREFIX} \
       ''--libdir=''${LIBDIR} \
+
       --libdir=${LIBDIR} \
       ''--mandir=''${MANDIR} \
+
       --mandir=${MANDIR} \
       ''--build=''$ARCH-slackware-linux \
+
       --build=$ARCH-slackware-linux \
       2>&1 | '''tee''' -a ${OUTPUT}/${PRGNAM}_configure.log
+
       2>&1 | tee -a ${OUTPUT}/${PRGNAM}_configure.log
 +
</syntaxhighlight>
 
* Compilazione ed installazione:
 
* Compilazione ed installazione:
   '''make''' VERBOSE=1 2>&1 | '''tee''' ${OUTPUT}/${PRGNAM}_make.log
+
<syntaxhighlight lang="bash">
   '''make''' install DESTDIR=${PKG} 2>&1 | '''tee''' ${OUTPUT}/${PRGNAM}_install.log
+
   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:
   '''find''' . ''-name'' CMakeCache.txt ''-exec'' '''rm''' {} \;
+
<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:
   '''export''' LD_LIBRARY_PATH=${PREFIX}/lib${LIBDIRSUFFIX}:${PREFIX}/lib${LIBDIRSUFFIX}/trinity:${LD_LIBRARY_PATH}
+
<syntaxhighlight lang="bash">
   '''export''' LIBDIR=${PREFIX}/lib${LIBDIRSUFFIX}
+
   export LD_LIBRARY_PATH=${PREFIX}/lib${LIBDIRSUFFIX}:${PREFIX}/lib${LIBDIRSUFFIX}/trinity:${LD_LIBRARY_PATH}
   '''export''' MANDIR
+
   export LIBDIR=${PREFIX}/lib${LIBDIRSUFFIX}
   '''export''' PATH=${PREFIX}/bin:${PATH}
+
   export MANDIR
   '''export''' PKG_CONFIG_PATH=${PREFIX}/lib${LIBDIRSUFFIX}/pkgconfig:${PKG_CONFIG_PATH}
+
   export PATH=${PREFIX}/bin:${PATH}
   '''export''' PREFIX
+
   export PKG_CONFIG_PATH=${PREFIX}/lib${LIBDIRSUFFIX}/pkgconfig:${PKG_CONFIG_PATH}
   '''export''' QTDIR=${PREFIX}
+
   export PREFIX
   '''export''' SYSCONFDIR=/etc/trinity
+
   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=""
+
   export DEBUG_CMAKE_OPT=""
 +
</syntaxhighlight>
 
* Configurazione del codice sorgente:
 
* Configurazione del codice sorgente:
   '''cmake''' ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
+
<syntaxhighlight lang="bash">
       ''-DCMAKE_C_FLAGS:STRING=''"${SLKCFLAGS}" \
+
   cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
       ''-DCMAKE_CXX_FLAGS:STRING=''"${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
+
       -DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
       ''-DCMAKE_INSTALL_PREFIX=''${PREFIX} \
+
       -DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
       ''-DLIB_SUFFIX=''${LIBDIRSUFFIX} \
+
       -DCMAKE_INSTALL_PREFIX=${PREFIX} \
       ''-DMAN_INSTALL_DIR=''${MANDIR} \
+
       -DLIB_SUFFIX=${LIBDIRSUFFIX} \
       ''-DSYSCONF_INSTALL_DIR=''${SYSCONFDIR} \
+
       -DMAN_INSTALL_DIR=${MANDIR} \
       ''-DBUILD_ALL=ON'' \
+
       -DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
       2>&1 | '''tee''' ${OUTPUT}/${PRGNAM}_configure.log
+
       -DBUILD_ALL=ON \
 +
       2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log
 +
</syntaxhighlight>
 
* Compilazione ed installazione:
 
* Compilazione ed installazione:
   '''make''' VERBOSE=1 2>&1 | '''tee''' ${OUTPUT}/${PRGNAM}_make.log
+
<syntaxhighlight lang="bash">
   '''make''' install DESTDIR=${PKG} 2>&1 | '''tee''' ${OUTPUT}/${PRGNAM}_install.log
+
   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:
   '''python''' configure.py \
+
<syntaxhighlight lang="bash">
 +
   python configure.py \
 
       CFLAGS="${SLKCFLAGS}" \
 
       CFLAGS="${SLKCFLAGS}" \
 
       CXXFLAGS="${SLKCFLAGS}" \
 
       CXXFLAGS="${SLKCFLAGS}" \
       2>&1 | '''tee''' ${OUTPUT}/${PRGNAM}_configure.log
+
       2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log
 +
</syntaxhighlight>
 
* Compilazione ed installazione:
 
* Compilazione ed installazione:
   '''make''' VERBOSE=1 2>&1 | '''tee''' ${OUTPUT}/${PRGNAM}_make.log
+
<syntaxhighlight lang="bash">
   '''make''' install DESTDIR=${PKG} 2>&1 | '''tee''' ${OUTPUT}/${PRGNAM}_install.log
+
   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} ''-fno-exceptions''" \
+
   CXXFLAGS="${SLKCFLAGS} -fno-exceptions" \
   '''tqmake''' qscintilla.pro \
+
   tqmake qscintilla.pro \
       2>&1 | '''tee''' ${OUTPUT}/${PRGNAM}_configure.log
+
       2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log
 +
</syntaxhighlight>
 
* Compilazione ed installazione:
 
* Compilazione ed installazione:
   '''make''' VERBOSE=1 2>&1 | '''tee''' ${OUTPUT}/${PRGNAM}_make.log
+
<syntaxhighlight lang="bash">
   '''make''' install INSTALL_ROOT=${PKG} 2>&1 | '''tee''' ${OUTPUT}/${PRGNAM}_install.log
+
   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 &egrave; 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 &egrave; stata rimpiazzata da '''Phonon''' in KDE 4 ed adottata da TDE. Per poter compilare Arts &egrave; necessario impostare l'opzione '''-DCMAKE_SKIP_RPATH="OFF"''' in fase di configurazione. Segue la riga con cui &egrave; invocato '''[http://www.cmake.org/ cmake]''':
 
'''A'''nalog '''R'''eal '''T'''ime '''S'''ynthesizer &egrave; 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 &egrave; stata rimpiazzata da '''Phonon''' in KDE 4 ed adottata da TDE. Per poter compilare Arts &egrave; necessario impostare l'opzione '''-DCMAKE_SKIP_RPATH="OFF"''' in fase di configurazione. Segue la riga con cui &egrave; invocato '''[http://www.cmake.org/ cmake]''':
   '''cmake''' ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
+
<syntaxhighlight lang="bash">
       ''-DCMAKE_C_FLAGS:STRING=''"${SLKCFLAGS}" \
+
   cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
       ''-DCMAKE_CXX_FLAGS:STRING=''"${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
+
       -DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
       ''-DCMAKE_INSTALL_PREFIX''=${PREFIX} \
+
       -DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
       ''-DCMAKE_SKIP_RPATH="OFF"'' \
+
       -DCMAKE_INSTALL_PREFIX=${PREFIX} \
       ''-DLIB_SUFFIX=''${LIBDIRSUFFIX} \
+
       -DCMAKE_SKIP_RPATH="OFF" \
       ''-DMAN_INSTALL_DIR=''${MANDIR} \
+
       -DLIB_SUFFIX=${LIBDIRSUFFIX} \
       ''-DSYSCONF_INSTALL_DIR=''${SYSCONFDIR} \
+
       -DMAN_INSTALL_DIR=${MANDIR} \
       ''-DBUILD_ALL=ON''
+
       -DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
 +
       -DBUILD_ALL=ON
 +
</syntaxhighlight>
 
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/arts.tar.gz indirizzo].
 
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/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. &Egrave; possibile reperire uno script di compilazione per avahi presso il sito [http://slackbuilds.org slackbuilds.org]. Una volta installata la dipendenza, sar&agrave; 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. &Egrave; possibile reperire uno script di compilazione per avahi presso il sito [http://slackbuilds.org slackbuilds.org]. Una volta installata la dipendenza, sar&agrave; 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''':
   '''export''' QTDIR=${PREFIX_TDE}
+
<syntaxhighlight lang="bash">
 +
   export QTDIR=${PREFIX_TDE}
 +
</syntaxhighlight>
 
Lanciando lo script autogen.sh perch&egrave; generi gli script ed i file di configurazione:
 
Lanciando lo script autogen.sh perch&egrave; generi gli script ed i file di configurazione:
   '''sh''' ./autogen.sh
+
<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''' \
+
   ./configure \
       ''--prefix=''${PREFIX} \
+
       --prefix=${PREFIX} \
       ''--libdir=''${LIBDIR} \
+
       --libdir=${LIBDIR} \
       ''--mandir=''${MANDIR} \
+
       --mandir=${MANDIR} \
       ''--build=''$ARCH-slackware-linux
+
       --build=$ARCH-slackware-linux
 +
</syntaxhighlight>
 
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/avahi-tqt.tar.gz indirizzo]. Nota bene: lo script &egrave; 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&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/avahi-tqt.tar.gz indirizzo]. Nota bene: lo script &egrave; 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:
   '''find''' . ''-name'' CMakeCache.txt ''-exec'' '''rm''' {} \;
+
<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&agrave;:
 
Passare a cmake l'opzione '''-DCMAKE_SKIP_RPATH="OFF"'''. L'invocazione completa di cmake risulter&agrave;:
   '''cmake''' ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
+
<syntaxhighlight lang="bash">
       ''-DCMAKE_C_FLAGS:STRING=''"${SLKCFLAGS}" \
+
   cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
       ''-DCMAKE_CXX_FLAGS:STRING=''"${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
+
       -DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
       ''-DCMAKE_INSTALL_PREFIX=''${PREFIX} \
+
       -DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
       ''-DCMAKE_SKIP_RPATH="OFF"'' \
+
       -DCMAKE_INSTALL_PREFIX=${PREFIX} \
       ''-DLIB_SUFFIX=''${LIBDIRSUFFIX} \
+
       -DCMAKE_SKIP_RPATH="OFF" \
       ''-DMAN_INSTALL_DIR=''${MANDIR} \
+
       -DLIB_SUFFIX=${LIBDIRSUFFIX} \
       ''-DSYSCONF_INSTALL_DIR=''${SYSCONFDIR} \
+
       -DMAN_INSTALL_DIR=${MANDIR} \
       ''-DBUILD_ALL=ON''
+
       -DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
 +
       -DBUILD_ALL=ON
 +
</syntaxhighlight>
 
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/dbus-tqt.tar.gz indirizzo].
 
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/dbus-tqt.tar.gz indirizzo].
  
Line 270: Line 315:
  
 
Pulire la chache ci cmake:
 
Pulire la chache ci cmake:
   '''find''' . ''-name'' CMakeCache.txt ''-exec'' '''rm''' {} \;
+
<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&agrave;:
 
Passare a cmake l'opzione '''-DCMAKE_SKIP_RPATH="OFF"'''. L'invocazione completa di cmake risulter&agrave;:
   '''cmake''' ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
+
<syntaxhighlight lang="bash">
       ''-DCMAKE_C_FLAGS:STRING=''"${SLKCFLAGS}" \
+
   cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
       ''-DCMAKE_CXX_FLAGS:STRING=''"${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
+
       -DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
       ''-DCMAKE_INSTALL_PREFIX=''${PREFIX} \
+
       -DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
       ''-DCMAKE_SKIP_RPATH=''"OFF" \
+
       -DCMAKE_INSTALL_PREFIX=${PREFIX} \
       ''-DLIB_SUFFIX=''${LIBDIRSUFFIX} \
+
       -DCMAKE_SKIP_RPATH="OFF" \
       ''-DMAN_INSTALL_DIR=''${MANDIR} \
+
       -DLIB_SUFFIX=${LIBDIRSUFFIX} \
       ''-DSYSCONF_INSTALL_DIR=''${SYSCONFDIR} \
+
       -DMAN_INSTALL_DIR=${MANDIR} \
       ''-DBUILD_ALL=ON''
+
       -DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
 +
       -DBUILD_ALL=ON
 +
</syntaxhighlight>
 
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/dbus-1-tqt.tar.gz indirizzo].
 
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/dbus-1-tqt.tar.gz indirizzo].
  
Line 286: Line 335:
  
 
'''Libart''' &egrave; 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 &egrave; sufficiente imporre alcune variabili di ambiente per i percorsi:
 
'''Libart''' &egrave; 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 &egrave; 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''' \
+
   ./configure \
       ''--prefix=''${PREFIX} \
+
       --prefix=${PREFIX} \
       ''--libdir=''${LIBDIR} \
+
       --libdir=${LIBDIR} \
       ''--build=''$ARCH-slackware-linux
+
       --build=$ARCH-slackware-linux
 +
</syntaxhighlight>
 
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/libart-lgpl.tar.gz indirizzo].
 
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/libart-lgpl.tar.gz indirizzo].
  
Line 300: Line 353:
  
 
'''Libcaldav''' &egrave; 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''' &egrave; 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:
   '''export''' QTDIR=${PREFIX_TDE}
+
<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:
   '''sh''' ./autogen.sh
+
<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''' \
+
   ./configure \
       ''--prefix=''${PREFIX} \
+
       --prefix=${PREFIX} \
       ''--libdir=''${LIBDIR} \
+
       --libdir=${LIBDIR} \
       ''--mandir=''${MANDIR} \
+
       --mandir=${MANDIR} \
       ''--build=''$ARCH-slackware-linux
+
       --build=$ARCH-slackware-linux
 +
</syntaxhighlight>
 
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/libcaldav.tar.gz indirizzo].
 
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/libcaldav.tar.gz indirizzo].
  
Line 319: Line 380:
  
 
'''Libcarddav''' &egrave; una libreria che implementa il protocollo '''CARDDAV''' utilizzato dal pacchetto base '''tdepim'''. Anche '''libcarddav''' &egrave; un pacchetto opzionale che contiene funzionalit&agrave; aggiuntive. Per compilare '''libcarddav''' si impostino le variabili di ambiente:  
 
'''Libcarddav''' &egrave; una libreria che implementa il protocollo '''CARDDAV''' utilizzato dal pacchetto base '''tdepim'''. Anche '''libcarddav''' &egrave; un pacchetto opzionale che contiene funzionalit&agrave; 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:
   '''export''' QTDIR=${PREFIX_TDE}
+
<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:
   '''sh''' ./autogen.sh
+
<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''' \
+
   ./configure \
       ''--prefix=''${PREFIX} \
+
       --prefix=${PREFIX} \
       ''--libdir=''${LIBDIR} \
+
       --libdir=${LIBDIR} \
       ''--mandir=''${MANDIR} \
+
       --mandir=${MANDIR} \
       ''--build=''$ARCH-slackware-linux
+
       --build=$ARCH-slackware-linux
 +
</syntaxhighlight>
 
Per lo specifico pacchetto &egrave; 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 &egrave; 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&ograve; 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&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/libcarddav.tar.gz indirizzo].
  
Line 343: Line 414:
  
 
'''Sip''' &egrave; 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&ograve; essere usato per qualsiasi libreria. Come per altri pacchetti precdentemente descritti, sip pu&ograve; essere compilato impostando alcune variabili d'ambiente:
 
'''Sip''' &egrave; 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&ograve; essere usato per qualsiasi libreria. Come per altri pacchetti precdentemente descritti, sip pu&ograve; 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:
   '''export''' MANDIR
+
<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} ''-I''/usr/include/tqt ''-I''/opt/trinity/include"
+
<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:
   '''python''' configure.py \
+
<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&ograve; 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&ograve; 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:
   '''export''' QTDIR=${PREFIX_TDE}
+
<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''' \
+
   ./configure \
       ''--prefix=''${PREFIX} \
+
       --prefix=${PREFIX} \
       ''--qtdir=''${QTDIR} \
+
       --qtdir=${QTDIR} \
 +
</syntaxhighlight>
 
Un'ulteriore particolarit&agrave; consiste nella variabile impiegata per individuare la directory di installazione dei file binari prodotti: '''INSTALL_ROOT''' anzich&egrave; '''DESTDIR''', usata nella quasi toatlit&agrave; degli altri pacchetti.
 
Un'ulteriore particolarit&agrave; consiste nella variabile impiegata per individuare la directory di installazione dei file binari prodotti: '''INSTALL_ROOT''' anzich&egrave; '''DESTDIR''', usata nella quasi toatlit&agrave; degli altri pacchetti.
   '''make''' install INSTALL_ROOT=${PKG}
+
<syntaxhighlight lang="bash">
 +
   make install INSTALL_ROOT=${PKG}
 +
</syntaxhighlight>
 
Impostata quest'ultima variabile, la compilazione pu&ograve; essere avviata lanciando il comando '''make'''.
 
Impostata quest'ultima variabile, la compilazione pu&ograve; essere avviata lanciando il comando '''make'''.
  
Line 379: Line 466:
  
 
'''Tqca-tls''' &egrave; 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&ugrave; facile gestione dato che lo script di configurazione si preoccupa di calcolare ed impostare i valori di tutte le opzioni. Per compilare '''tqca-tls''' &egrave; sufficiente impostare il percorso ove reperire le librerie TQt:
 
'''Tqca-tls''' &egrave; 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&ugrave; facile gestione dato che lo script di configurazione si preoccupa di calcolare ed impostare i valori di tutte le opzioni. Per compilare '''tqca-tls''' &egrave; sufficiente impostare il percorso ove reperire le librerie TQt:
   '''export''' QTDIR=${PREFIX}
+
<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''' \
+
   ./configure \
       ''--qtdir=''${QTDIR}
+
       --qtdir=${QTDIR}
 +
</syntaxhighlight>
 
Come per il pacchetto '''tqca''', l'unica particolarit&agrave; 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&agrave; di '''tqca-tls''' risiede nel nome della variabile utilizzata per specificare la destinazione dei file compilati: '''INSTALL_ROOT'''
   '''make''' install INSTALL_ROOT=${PKG}
+
<syntaxhighlight lang="bash">
 +
   make install INSTALL_ROOT=${PKG}
 +
</syntaxhighlight>
  
 
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/tqca-tls.tar.gz indirizzo].
 
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/tqca-tls.tar.gz indirizzo].
Line 393: Line 486:
  
 
Le librerie '''TQt''' forniscono i controlli di base con cui &egrave; costruito l'intero ambiente desktop TDE e sono pertanto di fondamentale importanza. La compilazione del pacchetto &egrave; onerosa in termini di tempo, ma relativamente facile. Per prima cosa &egrave; necessario impostare alcune variabili di ambiente:
 
Le librerie '''TQt''' forniscono i controlli di base con cui &egrave; costruito l'intero ambiente desktop TDE e sono pertanto di fondamentale importanza. La compilazione del pacchetto &egrave; onerosa in termini di tempo, ma relativamente facile. Per prima cosa &egrave; necessario impostare alcune variabili di ambiente:
   '''export''' LD_LIBRARY_PATH=/usr/lib${LIBDIRSUFFIX}:${TMP}/tmp-${PRGNAM}/${DIR_SRC}/lib:${TMP}/tmp-${PRGNAM}/build/lib
+
<syntaxhighlight lang="bash">
   '''export''' QTDIR=${PREFIX}
+
   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&agrave; 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&agrave; rendendo errore.
 
Data la complessit&agrave; delle librerie, lo script '''configure''' deve essere invocato con una riga di comando fornita di molte opzioni:
 
Data la complessit&agrave; 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}/'''configure''' \
+
   ../${DIR_SRC}/configure \
       ''-cups'' \
+
       -cups \
       ''-dlopen-opengl'' \
+
       -dlopen-opengl \
       ''-enable-opengl'' \
+
       -enable-opengl \
       ''-I/usr/include/freetype2/freetype'' \
+
       -I/usr/include/freetype2/freetype \
       ''-I/usr/include/mysql'' \
+
       -I/usr/include/mysql \
       ''-inputmethod'' \
+
       -inputmethod \
       ''-ipv6'' \
+
       -ipv6 \
       ''-L/usr/lib${LIBDIRSUFFIX}'' \
+
       -L/usr/lib${LIBDIRSUFFIX} \
       ''-lfontconfig'' \
+
       -lfontconfig \
       ''-libdir ${PREFIX}/lib${LIBDIRSUFFIX}'' \
+
       -libdir ${PREFIX}/lib${LIBDIRSUFFIX} \
       ''-nis'' \
+
       -nis \
       ''-no-g++-exceptions'' \
+
       -no-g++-exceptions \
       ''-no-pch'' \
+
       -no-pch \
       ''-platform linux-g++'' \
+
       -platform linux-g++ \
       ''-plugin-imgfmt-mng'' \
+
       -plugin-imgfmt-mng \
       ''-plugin-sql-mysql'' \
+
       -plugin-sql-mysql \
       ''-plugin-sql-sqlite'' \
+
       -plugin-sql-sqlite \
       ''-plugin-style-cde'' \
+
       -plugin-style-cde \
       ''-plugin-style-compact'' \
+
       -plugin-style-compact \
       ''-plugin-style-motifplus'' \
+
       -plugin-style-motifplus \
       ''-plugin-style-platinum'' \
+
       -plugin-style-platinum \
       ''-plugin-style-sgi'' \
+
       -plugin-style-sgi \
       ''-plugin-style-windows'' \
+
       -plugin-style-windows \
       ''-prefix ${PREFIX}'' \
+
       -prefix ${PREFIX} \
       ''-qt-gif'' \
+
       -qt-gif \
       ''-qt-imgfmt-jpeg'' \
+
       -qt-imgfmt-jpeg \
       ''-qt-imgfmt-mng'' \
+
       -qt-imgfmt-mng \
       ''-qt-imgfmt-png'' \
+
       -qt-imgfmt-png \
       ''-qt-style-motif'' \
+
       -qt-style-motif \
       ''-release'' \
+
       -release \
       ''-R${TMP}/tmp-${PRGNAM}/lib'' \
+
       -R${TMP}/tmp-${PRGNAM}/lib \
       ''-shared'' \
+
       -shared \
       ''-sm'' \
+
       -sm \
       ''-stl'' \
+
       -stl \
       ''-system-libjpeg'' \
+
       -system-libjpeg \
       ''-system-libmng'' \
+
       -system-libmng \
       ''-system-libpng'' \
+
       -system-libpng \
       ''-system-zlib'' \
+
       -system-zlib \
       ''-thread'' \
+
       -thread \
       ''-tablet'' \
+
       -tablet \
       ''-v'' \
+
       -v \
       ''-xcursor'' \
+
       -xcursor \
       ''-xft'' \
+
       -xft \
       ''-xinerama'' \
+
       -xinerama \
       ''-xkb'' \
+
       -xkb \
       ''-xrandr'' \
+
       -xrandr \
       ''-xrender'' \
+
       -xrender \
       ''-xshape''
+
       -xshape
 +
</syntaxhighlight>
 
Ed &egrave; necessario lanciare due volte il comando '''make'''. La seconda volta perch&egrave; si occupoi dei link simbolici ed altri particolari:
 
Ed &egrave; necessario lanciare due volte il comando '''make'''. La seconda volta perch&egrave; si occupoi dei link simbolici ed altri particolari:
   '''make''' VERBOSE=1
+
<syntaxhighlight lang="bash">
   '''make''' install INSTALL_ROOT=${PKG}
+
   make VERBOSE=1
   '''make''' -i symlinks sub-src sub-tool
+
   make install INSTALL_ROOT=${PKG}
   '''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&egrave; tutto funzioni senza intoppi:
 
Sono infine richieste alcune operazioni per aggiungere link simbolici, script di configurazione ed alcuni file necessari affinch&egrave; 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&ograve; 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&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/tqt3.tar.gz indirizzo].
  
Line 506: Line 607:
  
 
La '''Trinity Qt Interface''' &egrave; 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''' &egrave; 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''':
   '''cmake''' ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
+
<syntaxhighlight lang="bash">
       ''-DCMAKE_C_FLAGS:STRING=''"${SLKCFLAGS}" \
+
   cmake ${TMP}/tmp-${PRGNAM}/${DIR_SRC} \
       ''-DCMAKE_CXX_FLAGS:STRING=''"${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
+
       -DCMAKE_C_FLAGS:STRING="${SLKCFLAGS}" \
       ''-DCMAKE_INSTALL_PREFIX=''${PREFIX} \
+
       -DCMAKE_CXX_FLAGS:STRING="${SLKCFLAGS} $DEBUG_CMAKE_OPT" \
       ''-DLIB_SUFFIX=''${LIBDIRSUFFIX} \
+
       -DCMAKE_INSTALL_PREFIX=${PREFIX} \
       ''-DMAN_INSTALL_DIR=''${MANDIR} \
+
       -DLIB_SUFFIX=${LIBDIRSUFFIX} \
       ''-DQT_VERSION=3'' \
+
       -DMAN_INSTALL_DIR=${MANDIR} \
       ''-DSYSCONF_INSTALL_DIR=''${SYSCONFDIR} \
+
       -DQT_VERSION=3 \
       ''-DBUILD_ALL=ON''
+
       -DSYSCONF_INSTALL_DIR=${SYSCONFDIR} \
 +
       -DBUILD_ALL=ON
 +
</syntaxhighlight>
 
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/tqtinterface.tar.gz indirizzo].
 
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/tqtinterface.tar.gz indirizzo].
  
Line 529: Line 634:
  
 
Link esterni
 
Link esterni
 +
 
----
 
----
  
Line 537: Line 643:
 
----
 
----
  
Lingue: [http://www.giustetti.net/wiki/index.php?title=TDE_14.0.0_prerequisites English] - '''Italiano'''
+
{{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:

SISTEMA DI COMPILAZIONE
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





Lingue: English - Italiano