Trinity desktop environment 14.0.7

Revision as of 17:59, 25 July 2020 by Wikiuser (talk | contribs) (Rimosso frase che affermava erroneamente che Kipi-plugins fosse stato migrato a CMake)

Benvenuti nella pagina Wiki di Simone Giustetti.


Lingue: English - Italiano


TDE 14.0.7

Lo scorso 31 Dicembre del 2019 dopo quasi 8 mesi di lavoro è stato ufficializzato il rilascio della versione 14.0.7 di Trinity Desktop Environment: un ambiente grafico che supporta il sistema operativo Linux e parzialmente FreeBSD. Si tratta di un rilascio finalizzato alla correzione dei bachi scoperti nella versione precedente, ma gli sviluppatori hanno comunque incluso numerose migliorie sia al sistema di base che ai programmi a corredo. Per un elenco esaustivo delle modifiche e delle integrazioni si rimanda alle note del rilascio (in inglese).

Una delle modifiche più impattanti per chi produce in proprio i pacchetti dell'ambiente grafico consiste nella migrazione di sistema di build: il sistema originale autotools sta venendo progressivamente rimpiazzato con cmake. Si tratta di una grossa modifica ancora in corso d'opera, incominciata con la primissima versione di TDE e portata avanti a sprazzi in base alle priorità del gruppo di sviluppo nel corso degli anni. L'obiettivo finale consiste in configurare e compilare tutti i pacchetti di TDE con cmake. L'elenco è ancora parziale, ma fa comunque piacere constatare che il numero di pacchetti gestiti mediante il nuovo sistema sia cresciuto in maniera significativa rispetto al passato.

Da anni mantengo un insieme di script che consentono di compilare Trinity Desktop Environment per Slackware Linux e, complice l'acquisto di un nuovo Raspberry Pi 4 a scopo di test e la clausura forzata dal virus Covid-19, li ho aggiornati allineandoli alla versione 14.0.7. Segue un elenco delle modifiche apportate rispetto alla versione 14.0.6 con relativa descrizione dettagliata. Per gli impazienti: un archivio contenente una copia aggiornata degli script è scaricabile dal collegamento a fondo pagina.

Modifiche Generali al Build Tree

Alcune modifiche hanno riguardato l'intero build tree ossia tutti gli script che configurano e compilano il codice sorgente dei pacchetti costituenti TDE. Ovviamente, essendo cambiata la versione, sono state aggiornate tutte le variabili di ambiente adattandole alla nuova numerazione e ad altre piccole modifiche introdotte dagli sviluppatori. Il tutto senza stravolgere le linee guida del mio progetto. In particolare la directory di installazione preferita rimane /opt. In ogni script è stato aggiunto il calcolo di un checksum in formato SHA512 utile per chi desiderasse distribuire i pacchetti compilati e per verificarne l'integrità. Gli script prevedono ancora il calcolo del classico checksum MD5 anche se l'algoritmo sta progressivamente venendo rimpiazzato in quanto suscettibile a vulnerabilità che lo rendono insicuro.

Come anticipato nel paragrafo precedente, la modifica più sostanziale introdotta in TDE 14.0.7 consiste nella migrazione di molti pacchetti al sistema di compilazione cmake. La migrazione comporta l'impossibilità di generare pacchetti funzionanti a meno di aggiornare gli script preposti. Gli script preparati per TDE 14.0.6 o per le versioni precedenti andranno in errore non essendo confezionati per il giusto sistema. Di seguito verranno elencati i pacchetti toccati dalla modifica. Gli script relativi hanno subito due sostanziali modifiche. In primo luogo la pulizia della cache di cmake e la creazione della cartella dedicata alla compilazione:

   # Clean cmake cache
   find . -name CMakeCache.txt -exec rm {} \;
   
   # Create a directory where to build source (cmake wants the name to be build).
   cd ${TMP}/tmp-${PRGNAM}
   mkdir build
   cd build

e, seconda ma non meno importante modifica, nell'invocazione del comando usato per configurare il codice sorgente. Ad esempio:

   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 \
      2>&1 | tee -a ${OUTPUT}/${PRGNAM}_configure.log

al posto di:

   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   ./configure \
      --prefix=${PREFIX} \
      --libdir=${LIBDIR} \
      --build=$ARCH-slackware-linux \
       2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log

di seguito sono dettagliate tutte le modifiche apportate agli specifici pacchetti.

Modifiche all'Insieme dei Prerequisiti

L'insieme dei prerequisiti comprende tutti i programmi e le librerie richieste per ottenere un ambiente grafico base. Una modifica ha riguardato l'ordine di compilazione dei pacchetti: Akode e Libr, prerequisiti aggiunti nella precedente versione 14.0.6 di TDE, sono ora compilati per primi. Lo spostamento in ragione del fatto che altri pacchetti potrebbero trattarli come dipendenze. Di sicuro, vista la loro funzione, tdemultimedia e potenzialmente arts, anche se nutro dei dubbi su quest'ultimo. Modificare l'ordine di compilazione non ha causato errori o problemi nei successivi test per cui si può affermare con le dovute cautele che l'aggiornamento funzioni.

AVAHI-TQT

Avahi è una implementazione del servizio di Zeroconf (configurazione zero) che permette di assemblare una rete basata sui protocolli TCP/IP senza alcuna opera di configurazione. Il demone / servizio, un a volta installato ed avviato, esegue scansioni periodiche della rete alla ricerca dei servizi disponibili e salvando i risultati in cache per minimizzare il traffico. Il pacchetto avahi-tqt consente di integrare le funzionalità di Avahi nel Trinity Desktop Environment. Si tratta di una dipendenza superflua che di solito non compilo. Ammetto di averlo totalmente ignorato quando ho aggiornato gli script alla versione 14.0.6. Recentemente ho lavorato alla compilazione di LibreOffice su Slackware ARM 14.2 current. Dato che avahi è una potenziale seppur inutile dipendenza per entrambi i progetti ho deciso di compilare ed installare il pacchetto per completezza. Le istruzioni per compilare una versione utilizzabile di avahi sono reperibili nella pagina dedicata a LibreOffice. Avahi-tqt ha subito un notevole aggiornamento in TDE 14.0.7: è stato portato a cmake per cui il vecchio script di compilazione non funziona più. Quello nuovo, incluso nel build tree 14.0.7 è stato modificato in modo da invocare cmake e produrre un pacchetto completo, funzionante per avahi-tqt.

LIBART-LGPL

Anche libart-lgpl, una libreria veloce e leggera per la grafica in 2 dimensioni, è stata migrata a cmake. Si tratta fortunatamente dell'unica modifica introdotta.

LIBCALDAV

Libcaldav, una libreria usata per includere in TDE il supporto per il protocollo CalDAV, è stata migrata a cmake come molti altri prerequisiti, per cui il suo script ha richiesto alcune modifiche. Inoltre è stato rimosso il documento rfc4791.pdf dalla variabile DOCS, usata per copiare la documentazione della directory apposita. Il documento in questione è stato spostato nella directory ./doc dell'archivio contenete il codice sorgente e la sua inclusione tra la documentazione viene gestita dal MakeFile. Non è pertanto più richiesto copiarlo in maniera esplicita.

LIBCARDDAV

L'aggiornamento di libcarddav ha seguito pari, pari quello di libcaldav, la libreria gemella. Anche in questo caso è stato introdotto cmake come sistema di compilazione ed è stato rimosso il documento rfc4791.pdf dalla variabile DOCS, gestito in altra maniera dalla procedura di compilazione.

TQCA

L'unica variazione allo script di compilazione consiste nella sostituzione dell'opzione di configurazione deprecata qtdir con tqtdir:

   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   ./configure \
      --prefix=${PREFIX} \
      --tqtdir=${QTDIR} \
      2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log

TQCA-TLS

Lo script di compilazione rimane praticamente invariato se si esclude la sostituzione dell'opzione di configurazione deprecata qtdir con tqtdir:

   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   ./configure \
      --tqtdir=${QTDIR} \
      2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log

Modifiche all'Insieme delle Librerie

Trinity Desktop Environment si appoggia su numerose librerie esterne per incrementare le proprie funzionalità. Gli sviluppatori di TDE stanno facendo un grosso lavoro per migrare tutte le librerie opzionali al sistema di compilazione cmake. Il passsaggio non è ancora completo, ma cmake è stato introdotto in alcuni pacchetti anche con il rilascio 14.0.7, incrementando il numero complessivo ed avvicinandosi al traguardo finale. Di seguito sono elencati i pacchetti il cui script di compilazione è stato aggiornato e un dettaglio delle modifiche stesse.

LIBKDCRAW

Gli sviluppatori hanno incominciato la migrazione del sistema di compilazione a cmake ed hanno inoltre introdotto la possibilità di compilare il codice sorgente in una directory diversa da quella di residenza. Quello che in inglese si chiama compilazione "out of tree" e che non era supportato nelle versioni precedenti di TDE. Purtroppo si tratta di un lavoro in corso d'opera, non ancora concluso. Pertanto è stato mantenuto il vecchio sistema di compilazione basato su autotools. Ottimisticamente, visto lo stato del codice sorgente, si tratta di aspettare la prossima versione per poter usare cmake.

LIBKEXIV2

La libreria libkexiv2 è stata migrata a cmake. Non si segnalano altre modifiche introdotte.

LIBKIPI

La libreria libkipi è stata migrata a cmake. L'introduzione del nuovo sistema di compilazione è l'unica novità introdotta nella versione 14.0.7.

LIBKSQUIRREL

Gli sviluppatori hanno incominciato a migrare la libreria libksquirrel al sistema di compilazione cmake. Non si tratta dell'unica novità introdotta nella versione 14.0.7. Gli sviluppatori hanno infatti introdotto la possibilità di compilare il codice sorgente in una directory diversa da quella di residenza. Quello che in inglese si chiama compilazione "out of tree", non supportato nelle versioni precedenti di TDE. La conversione non è ancora stata completata per cui il vecchio script di compilazione che faceva ricorso ad autotools funziona ancora perfettamente. In attesa che la migrazione sia conclusa.

LIBTDELDAP

L'ultima libreria oggetto della migrazione del sistema di compilazione è libtdeldap, avente la funzione di aggiungere al Trinity Desktop Environment il supporto al protocollo LDAP. Lo script SlackBuild usato per compilare un pacchetto funzionante di libtdeldap per Slackware Linux e' stato aggiornato di conseguenza ed adattato al codice sorgente introdotto.


Modifiche ai Pacchetti Base

Un ambiente grafico esteso come TDE è organizzato in molti pacchetti per una migliore gestione dello sviluppo. Anche alcuni dei pacchetti dell'insieme di base sono stati portati a cmake e hanno inglobato modifiche, correzioni ed aggiornamenti rispetto alle versioni precedenti. Nei paragrafi seguenti vengono illustrate con un minimo di dettaglio tutte le modifiche significative riscontrate.

TDEACCESSIBILITY

Anche la migrazione del pacchetto tdeaccessbility è un lavoro in corso d'opera e non è ancora il momento di aggiornare a cmake il relativo script SlackBuild. Autotools ancora per una versione, si spera.

TDEADMIN

Il codice sorgente del pacchetto tdeadmin, che contiene i programmi di configurazione dell'ambiente e gli strumenti di amministrazione, è stato definitivamente portato a cmake. Un plauso agli sviluppatori del progetto Trinity Desktop Environemnt per l'ottimo lavoro svolto. Lo script di compilazione è stato modificato per usare i comandi del nuovo sistema di sviluppo.

TDEBINDINGS

Il lavoro per portare tdebindings: il pacchetto contenente le librerie di interfaccia necessarie per sviluppare componenti di TDE in un linguaggio diverso da C++, al nuovo sistema di compilazione è incominciato, ma non ancora concluso. Di conseguenza è ancora possibile usare lo script SlackBuild basato su autotools per produrre un pacchetto funzionante e completo di tdebindings per Slackware Linux.

TDEEDU

Anche tdeedu, il pacchetto contenente i programmi "scolastici" e di educazione di TDE è stato interessato dalla migrazione a cmake. Il lavoro di modifica ed aggiornamento è concluso perciò ho aggiornato il relativo script di compilazione adattandolo al nuovo build system.

TDEGAMES

Il pacchetto che include i giochi sviluppati esplicitamente per il Trinity Desktop Environement è stato portato a cmake ed è perciò andato ad ingrassare le file di quelli il cui script di compilazione richiedeva un aggiornamento. Con l'occasione ho anche aggiunto l'opzione DWITH_ARTS=ON al comando di configurazione del codice sorgente. Alcuni dei giochi inclusi la richiedono esplicitamente:

   # Configure the package
   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} \
      -DWITH_ARTS=ON \
      -DBUILD_ALL=ON \
      2>&1 | tee -a ${OUTPUT}/${PRGNAM}_configure.log

TDELIBS

Le librerie su cui si fonda TDE erano state migrate a cmake anni fa. Con la nuova versione è stata invece aggiunta l'opzione WITH_GCC_VISIBILITY al comando di configurazione:

   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} \
      -DWITH_GCC_VISIBILITY="ON" \
      -DBUILD_ALL="ON" \
      2>&1 | tee ${OUTPUT}/${PRGNAM}_configure.log

La visibillità è una buona idea e porta molti vantaggi come spiegato nelle pagine wiki di GCC. Il supporto è inoltre richiesto esplicitamente da alcune delle applicazioni a corredo di TDE come ad esempio: kiosk-tools.

TDEMULTIMEDIA

Con il rilascio della versione 14.0.7, tdemultimedia, il pacchetto contenente i programmi di riproduzione multimediale integrati in TDE, è entrato nel novero di quelli che usano cmake per configurare il codice sorgente e controllare la procedura di compilazione. Il relativo script di compilazione è stato aggiornato ed adattato di conseguenza.

TDEWBDEV

L'ultimo pacchetto di Trinity Desktop Environment migrato a cmake con la versione 14.0.7 è tdewebdev, che contiene gli strumenti di sviluppo web come l'editor di codice HTML, quello delle imagemap, ecc. Anche lo script di quest'ultimo è stato aggiornato adeguatamente.

TDE-I18N

Oltre a avahi-tqt, avevo dimenticato di aggiornare lo script che compila tde-i18n: i pacchetti di localizzazione dell'ambiente grafico per la versione 14.0.6 di TDE. Mi spiace per la svista, ma non usandoli non mi sono accorto della dimenticanza. Comunque ho rimediando includendo tutti gli aggiornamenti necessari nella versione 14.0.7. Ho quindi provveduto ad aggiungere:

  • Codice per gestire la nomenclatura degli archivi, sperando che gli sviluppatori del progetto abbiano esaurito gli algoritmi di compressione degli archivi e si siano messi finalmente d'accordo sull'organizzazione dei file e l'alberatura delle directory.
  • Codice per gestire il nome della directory in cui scompattare gli archivi.
  • Codice per gestire il flag di estrazione da passare al comando tar quando decomprime il codice sorgente.
  • L'opzione armv7l per gestire l'architettura ARM e l'opzione Hard Float utile per i Raspberry Pi 2, 3 e 4.

Il pacchetto è anche stato testato con successo. Posso affermare con una certa soddisfazione che la produzione dei pacchetti di localizzazione richiede decisamente meno tempo su di un Raspberry Pi 4 rispetto ai modelli precedenti.



IL BUILD TREE

Come promesso all'inizio dell'articolo, riporto un collegamento da cui scaricare tutti gli script di compilazione organizzati in un comodo archivio compresso: tde_build_tree_sg-14.0.7.tar.bz2. Una volta scaricato l'archivio e distribuito gli archivi costituenti il codice sorgente del progetto nelle opportune directory, potrete avviare la compilazione dell'interfaccia grafica lanciando lo script principale TDE.SlackBuild. Si consiglia di rimuovere eventuali versioni già presenti sulla macchina onde evitare conflitti con i nuovi pacchetti installati.


CONCLUSIONI

Nel corso del presente articolo sono state illustrate le molte novità introdotte nel sistema di compilazione di Trinity Desktop Environment con la versione 14.0.7. Gli script aggiornati e testati sono stati raccolti in un unico archivio in modo da facilitarne la fruizione. Per istruzioni dettagliate circa l'uso degli script si rimanda agli altri articoli reperibili nel sito. Le modifiche introdotte dagli sviluppatori hanno interessato il codice sorgente, ma non la procedura di compilazione nel suo complesso. Tutti i test di compilazione, installazione, configurazione e successivo uso sono stati condotti su di un Raspberry Pi modello 4 su cui gira una versione di Slackware Linux per piattaforma ARM. TDE si conferma la miglior interfaccia grafica per architetture dotate di poche risorse. In conclusione non resta che ringraziare gli sviluppatori di TDE per l'ottimo lavoro svolto e invitarvi a visitare nuovamente il sito per aggiornamenti e nuovi articoli.


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


Link esterni





Lingue: English - Italiano