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 (Trinity_desktop_environment#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 system's 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